
/* Lightweight materials and self-running project explanations. */
body:after{background-image:url('/media/grain.png');background-size:128px 128px;opacity:.025;animation:none;inset:0}
.case-object,.case-slot:nth-child(even) .case-object{filter:none;box-shadow:12px 16px 20px #0006}
.original-knight,.original-despair-title{filter:none}
.case-cover:after{background:linear-gradient(105deg,#ffffff26,transparent 12%,transparent 78%,#ffffff12 95%,transparent)}
.cover-node-web{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}
.original-engenuo-name,.case-engenuo .real-tagline{text-shadow:0 2px 6px #000,0 0 16px #000;background:#070707cf;padding-block:5px}
.case-engenuo .original-engenuo-name{left:3%;right:3%}
body[data-project="blvdle"]{--page-bg:#151d19;--page-fg:#e5eee8;--page-muted:#a5b5aa;--page-line:#3d5044;--page-accent:#92cfac;color-scheme:dark}
body[data-project="blvdle"] .brand-banner{background:transparent}
.case-blvdle .cover-print{background:#151d19}
.case-blvdle .original-site{border-color:#3d5044}
body[data-project="blvdle"] .browser-bar{background:#1e2a23;color:#a5b5aa;border-color:#3d5044}
body[data-project="blvdle"] .site-capture{border-color:#3d5044}
body[data-project="blvdle"] .detail-hero .eyebrow{text-transform:none}
body[data-project="downput"] .brand-banner{background:#080808;border-color:#272323;overflow:hidden}
body[data-project="downput"] .brand-banner img{image-rendering:pixelated;width:48%;height:80%;object-fit:contain}
body[data-project="rubber-duck"] .brand-banner{background:#04111d;border:0}
body[data-project="rubber-duck"] .brand-banner img{object-fit:contain}
body[data-project="engenuo"] .detail-hero{padding-top:20px}
.engenuo-hero-web{position:relative;isolation:isolate;width:100%;height:clamp(330px,45vw,580px);background:#070707;border:1px solid #222}
.engenuo-hero-web canvas{position:absolute;inset:0;width:100%;height:100%}
.engenuo-hero-title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;background:radial-gradient(ellipse at center,#070707d9,transparent 68%)}
body[data-project="engenuo"] .engenuo-hero-title h1{max-width:100%;font-size:clamp(40px,7vw,96px);margin:0;letter-spacing:.15em;padding-left:.15em}
.engenuo-hero-title p{font:clamp(9px,1vw,13px) var(--mono);text-transform:uppercase;letter-spacing:.18em;margin:18px 0 0}
body[data-project="engenuo"] .detail-hero .detail-lead{max-width:760px}
.section-intro{max-width:780px;margin-bottom:38px}
.section-intro h2{font-size:clamp(30px,3.4vw,48px);margin-bottom:20px}
.section-intro>p:last-child{font-size:16px;line-height:1.8;color:var(--page-muted);margin-bottom:0}
.section-intro .eyebrow{margin-bottom:17px}
.game-art-story{border-block:1px solid #3b2929;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,5vw,75px);padding:45px 0 55px;margin-bottom:30px}
.game-art-stage{position:relative;min-height:360px;background:radial-gradient(ellipse at 50% 60%,#292025,transparent 70%),#080808}
.game-art-stage:before{content:"";position:absolute;bottom:0;left:0;right:0;height:54%;background:url('/media/floorTile.png') repeat;background-size:48px;opacity:.26}
.pixel-art{image-rendering:pixelated;object-fit:contain}
.game-art-stage img{position:absolute;height:auto}
.art-knight{width:30%;left:29%;bottom:22%}
.art-slime{width:19%;left:6%;bottom:17%}
.art-mage{width:24%;right:5%;bottom:20%}

.art-story-copy{align-self:center}
.art-story-copy h2{font-size:40px;margin-bottom:22px}
.art-story-copy p{color:var(--page-muted);font-size:15px}
.art-story-copy .small-note{font-size:11px;margin-top:20px}
.playtest-charts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}
.playtest-chart{margin:0;padding:26px;background:#151212;border:1px solid #3e2d2b}
.playtest-chart figcaption{font-size:17px;color:#eee1cf;margin-bottom:5px}
.playtest-chart svg{width:min(100%,210px);margin:15px auto}
.chart-n{font:32px var(--font);fill:#f0e5d5}.chart-unit{font:7px var(--mono);fill:#b4a696;letter-spacing:1px}
.playtest-chart ul{list-style:none;padding:0;margin:0}.playtest-chart li{display:flex;gap:10px;align-items:center;font-size:11px;color:#c5b9aa;margin-block:10px}.playtest-chart li i{width:8px;height:8px;flex-shrink:0}.playtest-chart li strong{margin-left:auto;white-space:nowrap;font:11px var(--mono)}
.attack-revision{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:55px 0;border-bottom:1px solid #492424}
.attack-revision h2{font-size:40px;margin-bottom:22px}
.attack-revision p{color:var(--page-muted);font-size:15px}.attack-revision .small-note{font-size:12px}
.attack-revision figure{margin:0;align-self:center}
.attack-art-pair{min-height:240px;display:flex;align-items:center;justify-content:center;gap:30px;background:#131111;border:1px solid #382725}
.attack-art-pair>div{width:32%;text-align:center}.attack-art-pair img{width:100%;height:110px;margin-bottom:25px}.attack-art-pair span{font:10px var(--mono);color:#bbab96}
.attack-art-pair .art-transition{font:22px Georgia;color:#d4bc8f}
.slime-ready{filter:url(#slime-ready-color)}
.attack-revision figcaption{font-size:11px;color:#a89b89;margin-top:15px}
.jam-reviews{padding:65px 0;border-bottom:1px solid #492424}
.jam-reviews h2{font-size:clamp(32px,3.6vw,48px);margin-bottom:25px}
.reviews-intro{max-width:700px;color:var(--page-muted)}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin:38px 0}
.review-grid article{display:flex;flex-direction:column;border-top:1px solid #6b3935;padding-top:23px}
.review-grid blockquote{font:24px/1.45 Georgia,serif;margin:0 0 20px;color:#e4d5c6}
.review-grid p{font-size:13px;color:var(--page-muted)}
.review-grid a{font:11px var(--mono);color:#dcab93;margin-top:auto;padding-top:12px}
.jam-reviews .results-row{margin-top:45px}
.geometry-stories{padding:35px 0 60px}
.geometry-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.geometry-story{margin:0;border:1px solid #4c4134;background:#171513}
.geometry-wide{grid-column:1/-1}
.geometry-picture{background:#121211}.geometry-picture canvas{width:100%;height:auto;aspect-ratio:2;display:block}
.geometry-wide .geometry-picture canvas{max-height:470px;object-fit:contain}
.geometry-story figcaption{padding:28px 30px 30px}
.geometry-story figcaption .eyebrow{font-size:10px;margin-bottom:14px}
.geometry-story h3{font-size:25px;margin-bottom:16px}
.geometry-story figcaption>p:last-child{color:var(--page-muted);font-size:14px;line-height:1.75;margin:0}
.geometry-stories>.small-note{margin-top:24px}
.automatic-feature{padding:45px 0 65px;border-block:1px solid var(--page-line)}
.auto-scene{margin:0;overflow:hidden}
.auto-scene figcaption{font-size:12px;color:var(--page-muted);margin-top:22px;line-height:1.7}
.auto-scene *{animation-play-state:paused!important}
.auto-scene.scene-playing *{animation-play-state:running!important}
.workflow-scene{background:#0b0b0b;border:1px solid #303030;padding:25px}
.workflow-scene svg{width:100%;height:auto;overflow:visible}
.workflow-node rect{fill:#111;stroke:#505050;stroke-width:1.5}
.workflow-node path{stroke:#333}
.workflow-node circle{fill:#777}
.workflow-node text{font:17px Arial;fill:#d3d3d3}
.workflow-node .workflow-kicker{font:10px monospace;fill:#8a8a8a;letter-spacing:1px}
.flow-base{fill:none;stroke:#383838;stroke-width:2}
.flow-travel{fill:none;stroke:#e7e7e7;stroke-width:3;stroke-dasharray:9 140;stroke-dashoffset:30}
.node-0 rect{animation:node-light 9s infinite}
.node-1 rect{animation:node-light 9s 2.3s infinite}
.node-2 rect{animation:node-light 9s 4.6s infinite}
.flow-first{animation:wire-flow 9s infinite}
.flow-second{animation:wire-flow 9s 2.3s infinite}
@keyframes node-light{0%,15%,85%,100%{fill:#111;stroke:#505050}25%,58%{fill:#242424;stroke:#ededed}}
@keyframes wire-flow{0%,15%{stroke-dashoffset:30;opacity:0}20%{opacity:1}47%,100%{stroke-dashoffset:-150;opacity:0}}
.clue-story{padding:50px 0 65px;border-bottom:1px solid var(--page-line)}
.clue-sequence{list-style:none;margin:35px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.clue-sequence li{display:flex;gap:20px;border:1px solid #3d5044;background:#1e2a23;padding:24px;min-width:0}
.clue-index{font:13px var(--mono);color:#92cfac;padding-top:5px}
.clue-sequence h3{font:500 21px var(--font);color:#e5eee8}
.clue-sequence p{color:#a5b5aa;font-size:13px;line-height:1.7;margin:10px 0 0}
.social-scene{background:#ebddbf;color:#2b2118;border:1px solid #bda582;padding:32px}
.social-stage-label{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #baa783;padding-bottom:20px;margin-bottom:30px}
.social-stage-label span{font:9px var(--mono);color:#8c765c;animation:stage-label 16s infinite}
.social-stage-label span:nth-child(2){animation-delay:4s}.social-stage-label span:nth-child(3){animation-delay:8s}.social-stage-label span:nth-child(4){animation-delay:12s}
.social-screen-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:25px;align-items:center}
.story-phone{background:#f7efdc;border:1px solid #8b7356;box-shadow:3px 5px 0 #80684e33;padding:24px 19px;min-height:240px}
.story-phone .mono,.headline-stage>.mono{font-size:9px;letter-spacing:.04em}
.story-phone h3{font:26px/1.25 Georgia,serif;margin:32px 0 22px}
.private-seal{font:9px var(--mono);color:#a34527;border-top:1px solid #bda582;padding-top:15px}
.headline-stage{position:relative;min-height:210px}
.headline-stage>div{font:24px/1.3 Georgia,serif}
.headline-original{padding:15px 0 25px;animation:original-headline 16s infinite}
.headline-rewrite{position:absolute;top:43px;left:0;right:0;animation:edited-headline 16s infinite;color:#8f361c}
.ballot-option{font:12px/1.5 var(--font);border:1px solid #c5b28d;padding:10px;margin:8px 0;background:#eee2c7}
.investigator-phone{animation:ballot-enter 16s infinite}
.correct-order{animation:correct-reveal 16s infinite}
.correct-order span{float:right;opacity:0;animation:answer-check 16s infinite}
.social-result{font:20px Georgia,serif;margin-top:30px;border-top:1px solid #bda582;padding-top:23px;animation:answer-check 16s infinite}
.social-scene figcaption{color:#6f5d49}
@keyframes stage-label{0%,22%{color:#a23f22}26%,100%{color:#8c765c}}
@keyframes original-headline{0%,19%,95%,100%{opacity:1;transform:translateY(0)}25%,90%{opacity:0;transform:translateY(-15px)}}
@keyframes edited-headline{0%,20%,96%,100%{opacity:0;transform:translateY(20px)}28%,88%{opacity:1;transform:translateY(0)}}
@keyframes ballot-enter{0%,42%,100%{opacity:.22;transform:translateY(15px)}50%,92%{opacity:1;transform:translateY(0)}}
@keyframes correct-reveal{0%,70%,100%{background:#eee2c7;border-color:#c5b28d}76%,93%{background:#d8c29c;border-color:#975033}}
@keyframes answer-check{0%,70%,100%{opacity:0}77%,92%{opacity:1}}
@media(max-width:900px){
 .game-art-story,.attack-revision{grid-template-columns:1fr;gap:30px}
 .game-art-stage{min-height:360px}
 .review-grid{grid-template-columns:1fr 1fr}
 .social-screen-grid{grid-template-columns:1fr 1fr}
 .headline-stage{grid-column:1/-1;grid-row:1;min-height:150px}
 .story-phone{min-height:220px}
}
@media(max-width:600px){
 .geometry-story-grid,.playtest-charts,.clue-sequence,.review-grid{grid-template-columns:1fr}
 .geometry-story figcaption{padding:22px}
 .geometry-story h3{font-size:23px}
 .game-art-stage{min-height:280px}
 .game-art-story{padding-top:25px}
 .art-story-copy h2,.attack-revision h2{font-size:32px}
 .playtest-chart{padding:24px}
 .playtest-chart svg{max-width:190px}
 .review-grid{gap:34px}
 .social-scene{padding:20px 15px}
 .social-screen-grid{gap:12px}
 .story-phone{padding:15px 10px}
 .story-phone h3{font-size:21px}
 .story-phone .mono{font-size:8px}
 .ballot-option{font-size:10px;padding:8px 5px}
 .headline-stage>div{font-size:22px}
 .social-stage-label span{font-size:7px}
 .workflow-scene{padding:18px 9px}
 .workflow-scene svg{min-height:170px}
 .engenuo-hero-web{height:340px}
 body[data-project="engenuo"] .engenuo-hero-title h1{font-size:34px}
 .engenuo-hero-title p{font-size:8px;letter-spacing:.1em}
}
.no-motion .auto-scene *{animation:none!important}
.no-motion .headline-original{opacity:0}
.no-motion .headline-rewrite{opacity:1;transform:none}
.no-motion .investigator-phone,.no-motion .social-result,.no-motion .correct-order span{opacity:1;transform:none}
.no-motion .correct-order{background:#d8c29c;border-color:#975033}
@media(prefers-reduced-motion:reduce){.auto-scene *{animation:none!important}.headline-original{opacity:0}.headline-rewrite,.investigator-phone,.social-result,.correct-order span{opacity:1;transform:none}}

/* A representative set of original upgrades, separate from character artwork. */
.upgrade-showcase{padding:45px 0 65px;border-bottom:1px solid var(--page-line)}
.upgrade-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.upgrade-grid article{min-width:0;border-top:1px solid #67433b;padding-top:25px}
.upgrade-art{height:150px;background:#121010;display:flex;align-items:center;justify-content:center;margin-bottom:25px}
.upgrade-art img{width:88px;height:88px;object-fit:contain;image-rendering:pixelated}
.upgrade-grid .eyebrow{font-size:9px;letter-spacing:.09em;margin-bottom:12px;color:#c5a18c}
.upgrade-grid h3{font-size:24px;line-height:1.25;min-height:2.5em;margin-bottom:18px}
.upgrade-grid .upgrade-rule{font-size:14px;line-height:1.8;color:#c7bdb4}
.upgrade-grid .upgrade-design-note{font-size:12px;line-height:1.8;color:#a39484;border-top:1px solid #322722;padding-top:18px}
@media(max-width:1000px){.upgrade-grid{grid-template-columns:1fr 1fr;gap:35px 24px}}
@media(max-width:520px){.upgrade-grid{grid-template-columns:1fr}.upgrade-art{height:130px}.upgrade-grid h3{min-height:0}}

/* Larger, complete quote treatment for every selected reviewer. */
.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 48px;margin-top:44px}
.review-grid article{padding-top:28px}
.review-grid blockquote{font:clamp(28px,2.6vw,40px)/1.35 Georgia,serif;letter-spacing:-.015em;margin-bottom:24px;color:#f0e2d1}
.review-grid article:first-child blockquote{font-size:clamp(32px,3.2vw,48px)}
.review-grid p{font-size:15px;line-height:1.8;max-width:56ch}
.review-grid a{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:14px;font:12px var(--mono);padding:12px 0 4px}
.review-grid .review-source{color:#a79588;font:11px var(--font)}
@media(max-width:650px){.review-grid{grid-template-columns:1fr;gap:35px}.review-grid blockquote{font-size:29px}.review-grid article:first-child blockquote{font-size:33px}.review-grid p{font-size:14px}}

/* Full upgrade collection: loaded only when requested. */
.upgrade-collection-action{margin-top:32px}
.upgrade-collection-action button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:transparent;color:#f0e2d1;border:0;border-top:1px solid #67433b;border-bottom:1px solid #67433b;padding:17px 0;font:16px var(--font);cursor:pointer}
.upgrade-collection-action button:hover{color:#edb394;border-color:#edb394}
.upgrade-collection-action button:focus-visible,.collection-close:focus-visible{outline:2px solid #edb394;outline-offset:5px}
dialog.upgrade-collection{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(1160px,calc(100vw - 48px));height:min(880px,calc(100dvh - 64px));max-width:none;max-height:none;padding:0;border:1px solid #594238;background:#151211;color:#eee2d6;box-shadow:0 24px 100px #0009;overflow:hidden}
dialog.upgrade-collection[open]{display:flex;flex-direction:column}
.upgrade-collection::backdrop{background:rgba(0,0,0,.82)}
.collection-header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 36px;border-bottom:1px solid #48362f}
.collection-header .eyebrow{font-size:10px;letter-spacing:.12em;color:#bd9b85;margin:0 0 8px}
.collection-header h2{font:clamp(30px,3vw,42px)/1.1 var(--font);letter-spacing:-.035em;margin:0;color:#f2e8df}
.collection-close{display:flex;align-items:center;gap:16px;padding:12px 0 12px 16px;border:0;background:transparent;color:#dccbbb;font:14px var(--font);cursor:pointer}
.collection-close span{font-size:28px;line-height:1}
.collection-scroll{overflow-y:auto;overscroll-behavior:contain;padding:25px 36px 36px}
.collection-intro{font:14px/1.8 var(--font);color:#b9aca1;max-width:70ch;margin:0 0 28px}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.collection-upgrade{display:flex;align-items:flex-start;gap:17px;padding:26px 0;border-top:1px solid #3c2e28;min-width:0}
.collection-upgrade-art{flex:0 0 64px;min-height:72px;display:grid;place-items:center}
.collection-upgrade-art img{width:64px;height:64px;object-fit:contain;image-rendering:pixelated}
.collection-upgrade-art span{font:10px/1.6 var(--mono);color:#927c6e;text-align:center}
.collection-upgrade h3{font:20px/1.25 var(--font);letter-spacing:-.015em;margin:5px 0 12px;color:#f0e2d1}
.collection-upgrade p{font:13px/1.7 var(--font);color:#bfb0a4;margin:0;overflow-wrap:anywhere}
.collection-upgrade .collection-rarity{font:10px/1.4 var(--mono);color:#d1a58a}
.collection-additional{margin-top:30px}
.collection-additional>h3{font:23px var(--font);margin:0 0 10px}
.collection-additional>p{font:13px/1.7 var(--font);color:#b9aca1;margin-bottom:20px}
@media(max-width:900px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){dialog.upgrade-collection{width:calc(100vw - 20px);height:calc(100dvh - 24px)}.collection-header{padding:22px 20px}.collection-scroll{padding:22px 20px}.collection-grid{grid-template-columns:1fr}.collection-upgrade{gap:20px;padding:22px 0}.collection-header h2{font-size:32px}.collection-close{font-size:12px;gap:8px}}

/* DownPut: feedback, decisions, and visible revisions. */
.iteration-lead{padding:65px 0 40px;border-top:1px solid #492424;max-width:940px}
.iteration-lead h2{font-size:clamp(36px,4.2vw,68px);line-height:1.08;margin-bottom:28px}
.iteration-lead p:not(.eyebrow){color:var(--page-muted);font-size:clamp(16px,1.1vw,21px);line-height:1.8;max-width:48em}
.iteration-last-breath{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(35px,5vw,90px);padding:35px 0 65px;border-bottom:1px solid #492424}
.iteration-decision h3,.iteration-balance>h3,.iteration-portal h3,.iteration-visuals>h3,.iteration-fixes>h3{font-size:clamp(28px,3vw,44px);line-height:1.15;margin:0 0 28px;font-weight:400;letter-spacing:-.035em}
.iteration-decision>p,.iteration-portal p,.iteration-visuals>p,.iteration-three p{font-size:16px;line-height:1.8;color:var(--page-muted)}
.iteration-decision blockquote,.iteration-visuals blockquote{margin:28px 0;font:clamp(22px,2vw,31px)/1.45 Georgia,serif;color:#e7d4b5;padding-left:22px;border-left:2px solid #b77a45}
.iteration-decision cite,.iteration-visuals cite{display:block;font:11px/1.5 var(--mono);color:#b8a995;margin-top:18px}
.iteration-decision .small-note,.iteration-visuals .small-note{font-size:12px;line-height:1.7;color:#a89b89}
.iteration-balance,.iteration-visuals,.iteration-fixes{padding:60px 0;border-bottom:1px solid #492424}
.iteration-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin-top:35px}
.iteration-three article{border-top:1px solid #74423b;padding-top:24px}
.iteration-number{font:12px var(--mono);color:#c28a6d}
.iteration-three h4{font-size:25px;font-weight:400;margin:18px 0 25px}
.iteration-three .iteration-label{font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#dfb8a0;margin:22px 0 8px}
.iteration-portal{display:grid;grid-template-columns:190px 1fr;gap:50px;align-items:center;padding:60px 0;border-bottom:1px solid #492424}
.iteration-portal-art{background:#171215;padding:35px}
.iteration-portal-art img{display:block;width:100%;height:auto}
.iteration-portal p{max-width:50em}
.iteration-visuals>p{max-width:55em}
.iteration-effects{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:35px 0 24px}
.iteration-effects figure{margin:0;min-width:0}
.iteration-effect-stage{height:220px;display:flex;align-items:center;justify-content:center;background:#171313;border:1px solid #392b27}
.iteration-effect{width:130px;height:130px;background-repeat:no-repeat;image-rendering:pixelated}
.iteration-effect[data-iteration-fx="sweep"]{width:60px;height:180px}
.iteration-effects figcaption{padding:18px 0;font-size:13px;line-height:1.6;color:#a89b89}
.iteration-effects figcaption strong{display:block;font-size:17px;font-weight:400;color:#e3d6c1;margin-bottom:8px}
.iteration-effects figcaption span{display:block}
@media(max-width:900px){.iteration-last-breath{grid-template-columns:1fr}.iteration-three{grid-template-columns:1fr;gap:15px}.iteration-effects{grid-template-columns:repeat(2,minmax(0,1fr))}.iteration-portal{grid-template-columns:120px 1fr;gap:25px}.iteration-portal-art{padding:18px}}
@media(max-width:520px){.iteration-lead{padding-top:45px}.iteration-last-breath{padding-bottom:40px}.iteration-balance,.iteration-visuals,.iteration-fixes{padding:40px 0}.iteration-portal{grid-template-columns:1fr}.iteration-portal-art{width:110px}.iteration-effects{gap:12px}.iteration-effect-stage{height:180px}.iteration-effect{width:100px;height:100px}.iteration-effect[data-iteration-fx="sweep"]{width:45px;height:135px}}

.last-breath-footage{margin:0;min-width:0;align-self:start;position:sticky;top:110px;background:#080909;border:1px solid #423629}
.last-breath-footage video{display:block;width:100%;height:auto;aspect-ratio:1274/728;object-fit:contain;background:#000}
.last-breath-footage figcaption{padding:20px 24px;border-top:1px solid #423629}
.last-breath-footage figcaption strong{display:block;font-size:18px;font-weight:500;color:#eee5d6}
.last-breath-footage figcaption span{display:block;margin-top:8px;font-size:13px;line-height:1.7;color:#b8ad9c}
@media(max-width:900px){.last-breath-footage{position:static;grid-row:1}.last-breath-footage figcaption{padding:18px}}

/* Source-positioned upgrade demonstrations, on a five-by-five floor grid. */
.iteration-effects{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.iteration-effect-stage{height:340px}
.iteration-board{position:relative;width:280px;height:280px;background:#000 url('/media/floorTile.png') repeat;background-size:20% 20%;image-rendering:pixelated;isolation:isolate}
.iteration-player,.iteration-bomb,.iteration-board .iteration-effect{position:absolute;left:40%;top:40%;width:20%;height:20%;image-rendering:pixelated}
.iteration-player{z-index:2;object-fit:contain}
.iteration-board .iteration-effect{left:calc(40% + var(--fx-x)*20%);top:calc(40% + var(--fx-y)*20%);z-index:3}
.iteration-board .iteration-effect[data-iteration-fx="sweep"]{width:20%;height:60%;top:20%}
.iteration-bomb{z-index:1}
.iteration-bomb img{display:block;width:100%;height:100%;image-rendering:pixelated}
@font-face{font-family:DownputUpheaval;src:url('/media/iteration/upheavtt.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.iteration-bomb{--bomb-tile:56px}
.iteration-bomb span{position:absolute;left:-6.25%;top:-25%;width:25%;height:93.75%;transform:scale(.5);transform-origin:top left;color:#fff;font:400 var(--bomb-tile)/1 DownputUpheaval,sans-serif;white-space:nowrap;text-align:center;text-shadow:none;font-synthesis:none}
@media(max-width:600px){.iteration-bomb{--bomb-tile:48px}}
.iteration-bomb.is-armed{transform:scale(1.2);filter:sepia(1) saturate(5) hue-rotate(320deg)}
@media(max-width:600px){.iteration-effects{grid-template-columns:1fr;gap:22px}.iteration-effect-stage{height:300px}.iteration-board{width:240px;height:240px}}

.despair-map-section{padding:60px 0 75px;border-bottom:1px solid #3a3430}
.despair-map-section h2{font-size:clamp(34px,4vw,60px);line-height:1.08;font-weight:400;letter-spacing:-.045em}
.despair-map-intro{max-width:800px;color:#c5b9ac;line-height:1.8;margin:24px 0 40px}
.despair-map-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);gap:clamp(28px,4vw,65px)}
.despair-map-image{display:block;color:#bcb2a7;font-size:13px;text-decoration:none}
.despair-map-image img{display:block;width:100%;height:auto;border:1px solid #3f4548}
.despair-map-image span{display:block;margin-top:12px}
.despair-map-key h3{margin:0 0 25px;font-size:24px;font-weight:400}
.despair-map-key dl{margin:0}.despair-map-key dl>div{padding:16px 0;border-top:1px solid #3d3630}
.despair-map-key dt{display:flex;align-items:center;gap:14px;font-size:17px}
.despair-map-key dt b{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;font:16px var(--mono);color:#fff;border:1px solid #777}
.despair-map-key dd{margin:12px 0 0;font-size:14px;line-height:1.75;color:#bdb2a6}
.despair-map-key .small-note{font-size:12px;line-height:1.7;color:#a3988c;margin-top:25px}
@media(max-width:800px){.despair-map-layout{grid-template-columns:1fr}}

.despair-gameplay{padding:65px 0;border-bottom:1px solid #3a3430}
.despair-gameplay h2{font-size:clamp(34px,4vw,60px);line-height:1.08;font-weight:400;letter-spacing:-.045em}
.despair-gameplay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
.despair-gameplay figure{margin:0;min-width:0}.despair-gameplay video,.despair-gameplay-grid>figure>img{display:block;width:100%;aspect-ratio:4/3;background:#080808}
.despair-gameplay figcaption{padding:18px 0}.despair-gameplay figcaption strong{font-size:22px;font-weight:400}
.despair-gameplay figcaption p{margin:10px 0 0;color:#bdb2a6;font-size:14px;line-height:1.7}
.despair-gameplay>.small-note{font-size:12px;line-height:1.8;color:#a3988c}
@media(max-width:650px){.despair-gameplay-grid{grid-template-columns:1fr}}

/* Preserve the original health/ammo HUD in the new DESPAIR recordings. */
.despair-gameplay video{aspect-ratio:1080/1004;object-fit:contain}

/* blvdle: documented design evolution, using the existing dark case-study style. */
.blvdle-order-study{margin:0 0 60px;padding:clamp(20px,3vw,40px);border:1px solid #3d5044;background:#18251e}
.blvdle-order-study figcaption{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:32px;color:#dce7df}
.blvdle-order-study figcaption span{font-size:13px;color:#a5b5aa}
.blvdle-sequence+ .blvdle-sequence{margin-top:28px}
.blvdle-sequence h3{font-size:17px;margin-bottom:14px;letter-spacing:0}
.blvdle-sequence ol{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;list-style:none;margin:0;padding:0}
.blvdle-sequence li{border-top:1px solid #52675b;padding:15px 8px;font-size:14px;line-height:1.5;color:#c1cec5}
.blvdle-sequence li span{display:block;font:12px var(--mono);margin-bottom:12px;color:#93ad9c}
.blvdle-sequence .panorama-step{background:#283d31;border-color:#b5d8c1;color:#f0f6f2}
.blvdle-order-study>.small-note{margin:26px 0 0}
.blvdle-design-quote{margin:0 0 28px;padding:0 0 0 24px;border-left:2px solid #91b89f;font:clamp(23px,2.2vw,32px)/1.45 Georgia,serif;color:#dce7df}
.blvdle-design-quote cite{display:block;margin-top:16px;font:12px/1.6 var(--font);color:#a5b5aa}
.blvdle-refinements article+article{border-top:1px solid #3d5044;margin-top:28px;padding-top:28px}
.blvdle-refinements h3{margin-bottom:14px}
@media(max-width:700px){.blvdle-sequence ol{grid-template-columns:repeat(2,minmax(0,1fr))}.blvdle-order-study{margin-bottom:30px}}

/* Contact details stay readable on narrow screens. */
.portfolio-contact a{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.contact-aliases{list-style:none;padding:0;margin:24px 0 0;font-size:14px}
.contact-aliases li{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 0;border-top:1px solid #ffffff1c}
.contact-aliases span{min-width:76px;color:#aaa9a5}
.site-footer{flex-wrap:wrap}.site-footer a[href^="mailto:"]{overflow-wrap:anywhere}

/* Credits use a centered reading column with a shared left edge. */
.credits-page.wrap{width:calc(100% - clamp(40px,8vw,144px));max-width:900px;margin-inline:auto}
.credits-page h1{font-size:clamp(2.75rem,5vw,5rem);line-height:1.08}
.credits-page .credits-copy{max-width:none;width:100%;margin:40px 0 0}
.credits-page>.eyebrow{margin-top:clamp(36px,5vw,64px)}
@media(max-width:600px){.credits-page .credits-copy{margin-top:28px}}
