
/* Project directory: authentic branding, large direct links, no home case study. */
body{background:#111214;color:#ececef}
body:after{opacity:.018}
body:not(.detail-route){min-height:100svh;display:flex;flex-direction:column}
body:not(.detail-route) main{flex:1;min-height:0}
.site-header,.detail-route .site-header{height:74px;padding:0 4vw;background:transparent}
body:not(.detail-route) .site-header{border-bottom:1px solid #ffffff12}
.site-header nav a,.site-header nav button{color:inherit}
.directory-heading{display:flex;align-items:end;justify-content:space-between;padding:34px 5vw 26px}
.directory-heading h1{font-size:clamp(28px,3.2vw,48px);letter-spacing:-.055em}
.directory-heading p{font-size:12px;color:#95969b;margin:10px 0 0}
.directory-count{font:9px var(--mono);color:#85868c;letter-spacing:.1em}.directory-count span{margin-left:30px;color:#d9d9de}
#case-rail{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none;padding:35px 0 24px;outline-offset:-4px;background:radial-gradient(ellipse at 50% 60%,#92969c12,transparent 70%)}
#case-rail::-webkit-scrollbar{display:none}
#case-shelf{display:flex;gap:clamp(32px,4vw,70px);width:max-content;padding:0 7vw 0 6vw;align-items:end}
.case-slot{width:clamp(245px,34vh,380px);flex:0 0 auto;scroll-snap-align:center;perspective:1600px}
.case-slot:after{display:none!important}
.case-link{display:block;width:100%;aspect-ratio:.665;position:relative;perspective:1600px}
.case-object,.case-slot:nth-child(even) .case-object{transform:rotateY(-9deg);filter:drop-shadow(16px 22px 12px #000a);transition:transform .22s ease-out}
.case-link:hover .case-object,.case-link:focus-visible .case-object{transform:translateY(-7px) rotateY(-2deg)}
.case-cover{padding:3px;border-radius:4px;transform:translateZ(7px);background:linear-gradient(90deg,#bec0c3,#333538 2%,#96989b 98%,#ddd);box-shadow:inset 1px 0 #fff8,3px 1px 2px #000}
.case-cover:after{opacity:.18;background:linear-gradient(105deg,#fff5,transparent 9%,transparent 76%,#fff2 91%,transparent),repeating-linear-gradient(0deg,transparent 0 3px,#fff1 3px 3.5px)}
.case-bevel{border-radius:4px;box-shadow:inset 0 1px 1px #dfe0e0,inset 1px 0 1px #8f9194,inset -1px -2px 2px #000}
.cover-print{border-radius:2px;box-shadow:inset 0 0 10px #0004}
.steel-edge{position:absolute;inset:1px -6px 0 0;border-radius:4px;background:linear-gradient(90deg,#313336,#7b7e82 97%,#121416);border:1px solid #8d9094;box-shadow:inset -2px 0 1px #d6d6d644}
.steel-spine{position:absolute;left:-9px;top:0;bottom:0;width:12px;background:linear-gradient(90deg,#151619,#777a80,#202226);writing-mode:vertical-rl;font:8px Arial;padding:18px 1px;color:#d3d4d6;transform:rotateY(-65deg);transform-origin:right;border-radius:3px}
.case-caption{margin-top:24px;padding:0;display:flex;font-size:12px;gap:15px;color:#d5d5d8;min-height:0}
.case-caption>span:first-child{display:block;color:#717278;font:9px var(--mono)}
.case-caption>span:last-child{margin-left:auto;color:#84868c}
.case-caption>span:nth-child(2){color:#d5d5d8}
.directory-controls{display:flex;justify-content:space-between;align-items:center;margin:0 5vw;padding:13px 0 8px;border-top:1px solid #ffffff18;color:#83848b;font:10px var(--mono)}
.directory-controls>div{display:flex;gap:15px}.directory-controls button{padding:8px 18px;font-size:25px;color:#dedee1}.directory-controls button:disabled{opacity:.25;cursor:default}
body:not(.detail-route) .site-footer{width:90%;padding:17px 0 22px;font-size:9px;border:0;color:#73747a}
.original-full-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.case-despair .cover-print{background:#171416}
.original-despair-title{position:absolute;bottom:11%;left:5%;width:89%;height:auto;filter:drop-shadow(0 3px 3px #0008)}
.case-downput .cover-print{background:#050505}
.game-title{position:absolute;top:4%;left:-15%;width:130%;max-width:none;height:43%;object-fit:cover;object-position:top}
.original-knight{position:absolute;width:42%;height:auto;left:29%;bottom:9%;image-rendering:pixelated;filter:drop-shadow(0 8px 8px #000)}
.original-dungeon-floor{position:absolute;bottom:0;left:0;right:0;height:42%;background:url('/media/floorTile.png');background-size:50px;opacity:.23;mask-image:linear-gradient(transparent,#000)}
.original-logo{position:absolute;top:14%;left:8%;width:84%;height:27%;object-fit:contain}
.original-site{position:absolute;bottom:4%;left:7%;width:86%;height:48%;object-fit:cover;object-position:top;border:1px solid #ffffff20}
.case-blvdle .cover-print{background:#f6f7f1;color:#173e2c}.case-blvdle .original-site{border-color:#24463222}
.case-engenuo .cover-print{background:#050505;color:#fff}.case-engenuo .original-site{left:-40%;max-width:none;width:180%;height:60%;bottom:0;object-fit:cover;border:0;opacity:.7;mask-image:linear-gradient(transparent,#000 25%)}
.original-engenuo-name{position:absolute;left:7%;right:7%;top:23%;font:800 29px Arial;letter-spacing:.15em;text-align:center;z-index:2}
.real-tagline{position:absolute;top:38%;left:8%;right:8%;text-align:center;font:10px/1.6 var(--mono);color:inherit;z-index:2}
.case-engenuo .real-tagline{top:34%;font-size:8px;letter-spacing:.14em;text-transform:uppercase}
.case-verbantics .cover-print{background:#f5eacf;color:#2b2118}
.case-verbantics .original-logo{top:8%;height:29%}.case-verbantics .real-tagline{top:39%;font-family:Georgia,serif;font-size:17px}
.case-verbantics .original-site{height:41%;bottom:6%;border-color:#2b211833}
.case-rubber-duck .cover-print{background:#041523;color:#f4f8ff}
.case-rubber-duck .original-full-cover{object-fit:cover;object-position:58% center;opacity:.8;mask-image:linear-gradient(transparent 5%,#000 50%)}
.original-duck-name{position:absolute;top:22%;left:7%;right:7%;text-align:center;font:bold 24px Arial;z-index:2}
/* Project identities. Shared evidence structure; independent branding and surface. */
body.detail-route{--page-bg:#101113;--page-fg:#eae9e6;--page-muted:#a8a8aa;--page-line:#38393c;--page-accent:#d3d3d7;background:var(--page-bg);color:var(--page-fg)}
body[data-project="downput"]{--page-bg:#090909;--page-fg:#eeeeeb;--page-muted:#b4abaa;--page-line:#492424;--page-accent:#ed3931}
body[data-project="despair"]{--page-bg:#141113;--page-fg:#e8dfc7;--page-muted:#b8aa98;--page-line:#514436;--page-accent:#d3b85c}
body[data-project="engenuo"]{--page-bg:#050505;--page-fg:#f5f5f5;--page-muted:#a6a6a6;--page-line:#292929;--page-accent:#fff}
body[data-project="blvdle"]{--page-bg:#f5f7f0;--page-fg:#173d2d;--page-muted:#536759;--page-line:#c7d4c7;--page-accent:#276548}
body[data-project="verbantics"]{--page-bg:#f5eacf;--page-fg:#2b2118;--page-muted:#6f5d49;--page-line:#c9b99b;--page-accent:#ac4d2d}
body[data-project="rubber-duck"]{--page-bg:#041523;--page-fg:#eef6ff;--page-muted:#a3bdd4;--page-line:#214059;--page-accent:#6eaeef}
.detail-route #detail-view,.detail-route .site-header,.detail-route .site-footer{background:var(--page-bg);color:var(--page-fg)}
.detail-route .site-header,.detail-route .site-footer{border-color:var(--page-line)}
.detail-route :is(.story-section,.detail-facts,.timeline-section,.review-section,.next-project,.decision-card){border-color:var(--page-line)}
.detail-route :is(.detail-lead,.story-body,.story-body p,.small-note,.detail-facts span,.eyebrow,.back-link,.lab-credit,.lab-heading>p,.site-footer,.review-context){color:var(--page-muted)}
.detail-route :is(h1,h2,h3,.detail-facts strong,em){color:var(--page-fg)}
.detail-route :is(.button,.text-link,.project-link){color:var(--page-accent);border-color:var(--page-accent)}
.detail-hero{padding-top:60px;padding-bottom:75px;display:flow-root}
.detail-hero h1{font-size:clamp(3rem,5.5vw,6rem);max-width:52%;margin-top:25px}
.brand-banner{float:right;width:43%;height:340px;margin:0 0 30px 5%;overflow:hidden;border:1px solid var(--page-line);display:flex;align-items:center;justify-content:center;background:var(--page-bg)}
.brand-banner img{width:100%;height:100%;object-fit:contain}
.detail-hero .detail-lead{max-width:49%;font-size:17px;margin-top:28px}
.detail-facts{clear:both}
.project-tagline{font-size:16px;color:var(--page-accent);margin:18px 0 0}
body[data-project="downput"] .detail-hero h1{font-family:Impact,'Arial Narrow',sans-serif;color:#ed3931;letter-spacing:.01em}
body[data-project="despair"] .brand-banner img{object-fit:cover;object-position:center 20%}
body[data-project="engenuo"] .detail-hero h1{font-size:clamp(2.7rem,4.5vw,5rem);font-weight:800;text-transform:uppercase;letter-spacing:.12em}
body[data-project="engenuo"] .project-tagline{font:10px var(--mono);letter-spacing:.22em;text-transform:uppercase}
body[data-project="verbantics"] :is(h1,h2,h3){font-family:Georgia,serif;letter-spacing:-.04em}
body[data-project="verbantics"] .brand-banner{border:0;padding:30px}
body[data-project="blvdle"] .brand-banner{padding:35px;border:0}
body:is([data-project="blvdle"],[data-project="verbantics"]) :is(.feature-panel,.phone-panel,.decision-card,.duck-process){background:transparent;color:var(--page-fg);border-color:var(--page-line)}
body:is([data-project="blvdle"],[data-project="verbantics"]) :is(.feature-copy>p,.phone-panel p,.node-demo>p){color:var(--page-muted)}
body:is([data-project="blvdle"],[data-project="verbantics"]) .demo-actions button{color:var(--page-fg);border-color:var(--page-accent)}
body[data-project="verbantics"] .phone-panel{background:#ead8b5;box-shadow:3px 4px 0 #2b2118}
body[data-project="blvdle"] .clue-demo{background:#e7eee3;color:#173d2d}
@media(max-width:760px){
.site-header,.detail-route .site-header{padding:0 6vw;height:64px}.directory-heading{padding:24px 6vw 10px}.directory-heading h1{font-size:30px}.directory-count{display:none}
#case-rail{padding:35px 0 22px}#case-shelf{gap:30px;padding-inline:10vw}
.case-slot{width:min(73vw,310px)}.case-caption{font-size:11px;margin-top:22px}.directory-controls{margin-inline:7vw}
.detail-hero{padding-top:35px}.brand-banner{float:none;width:100%;height:230px;margin:0 0 35px}
.detail-hero h1,.detail-hero .detail-lead{max-width:100%}.detail-hero h1{font-size:2.8rem}
}
@media(prefers-reduced-motion:reduce){.case-object{transition:none}}
