:root{color-scheme:dark;--red:#e34234;--bright:#ff614e;--ink:#080609;--muted:#a58d91;--line:#6b302f;--text:#f4e8e6;font-family:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--text)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #ffb9a5;outline-offset:5px}a{color:inherit;text-decoration:none}.interface{min-height:100svh;overflow:hidden;position:relative;background:radial-gradient(ellipse at 55% 46%,#50141b38,transparent 51%),linear-gradient(130deg,#12090d,#080609 65%)}.interface:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#f5846810 1px,transparent 1px),linear-gradient(90deg,#f5846810 1px,transparent 1px);background-size:88px 88px;mask-image:radial-gradient(ellipse at 55% 55%,#0009,transparent 70%)}header{height:96px;margin:0 5%;display:flex;align-items:center;gap:32px;border-bottom:1px solid #e342342b;position:relative;z-index:2}.brand{font-size:32px;letter-spacing:-2px;font-weight:700}.brand span{color:var(--red)}.identity,.preview-label,.eyebrow,.panel-top,.reference-note>span,.axis-label,.model-tag,.local-note,.layer-key,.footer-caption{font-family:monospace;font-size:10px;letter-spacing:1.8px}.identity{color:#beaaac;flex:1}.identity span{color:var(--red);padding:0 12px}.preview-label{display:flex;gap:9px;align-items:center;color:#d8b6b2}.preview-label i,.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--bright);box-shadow:0 0 10px #ff614eaa}main{min-height:calc(100svh - 196px);display:grid;grid-template-columns:25% 52% 23%;align-items:center;position:relative;width:90%;margin:auto}.intro{position:relative;z-index:2;padding:36px 0}.eyebrow{color:#d47871;margin:0 0 28px;font-size:9px;letter-spacing:2px}h1{font-size:clamp(35px,4.3vw,65px);line-height:1.03;letter-spacing:-2.8px;font-weight:500;margin:0 0 24px}h1 em{font-style:normal;color:var(--bright)}.description{font-size:13px;line-height:1.7;color:#b7a1a4;margin:0 0 26px}.inspect{border:1px solid #a5433c;color:#ffe4dc;background:linear-gradient(120deg,#e342342b,#e3423409);padding:14px 16px;font-size:11px;display:flex;gap:20px;align-items:center;border-radius:3px}.inspect:hover{background:#e3423440}.inspect span{font-size:17px;color:var(--bright)}.reference-note{margin-top:64px;border-left:1px solid #e3423460;padding-left:14px}.reference-note>span{color:#d37369;font-size:9px}.reference-note p{font-size:12px;line-height:1.55;color:#ac8e93;margin:9px 0 0}.model-view{height:min(700px,calc(100svh - 216px));min-height:460px;position:relative;isolation:isolate;z-index:1}.canvas-wrap{position:absolute;inset:-30px -95px -8px -95px}.canvas-wrap{mask-image:radial-gradient(ellipse at center,#000 46%,#000d 63%,transparent 76%)}.canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}.canvas-wrap canvas:active{cursor:grabbing}.loading{position:absolute;inset:46% 0 auto;text-align:center;color:var(--red);font:11px monospace;letter-spacing:3px}.model-tag{display:flex;align-items:center;justify-content:center;gap:12px;position:absolute;top:12px;left:0;right:0;color:#d19790;font-size:9px;pointer-events:none}.tag-line{width:30px;height:1px;background:#e3423460}.axis-label{position:absolute;top:45%;font-size:8px;color:#9c645f;writing-mode:vertical-rl;letter-spacing:2px;pointer-events:none}.axis-left{left:8px;transform:rotate(180deg)}.axis-right{right:8px}.interaction-hint{position:absolute;left:0;right:0;bottom:53px;text-align:center;font-size:10px;color:#b99193;letter-spacing:.4px;pointer-events:none}.interaction-hint span{margin:0 8px;color:#8f403a}.model-tools{position:absolute;left:0;right:0;bottom:9px;display:flex;justify-content:center;gap:6px}.model-tools button{background:#130b0ee8;border:1px solid #8d40364d;color:#c6aaa8;border-radius:3px;font-size:10px;padding:10px 11px}.model-tools button:hover,.model-tools button[aria-pressed=true]:not(#motion){border-color:#e3423499;color:#fff0e9;background:#e3423426}.focus-panel{padding-left:30px;position:relative;z-index:2}.panel-top{display:flex;justify-content:space-between;color:#b57873;border-bottom:1px solid #e3423440;padding:0 0 14px;margin-bottom:28px;font-size:9px}.panel-top span:last-child{color:var(--bright)}.module-symbol{font-size:40px;line-height:1;color:var(--bright);margin-bottom:20px}h2{font-size:25px;font-weight:400;line-height:1.15;letter-spacing:-.7px;margin:0 0 16px}.focus-panel>p{font-size:12px;line-height:1.75;color:#b99da1;max-width:230px}.rule{height:1px;background:linear-gradient(90deg,#a3484277,transparent);margin:27px 0 18px}.layer-key{display:flex;align-items:center;gap:8px;color:#d48980;font-size:8px;letter-spacing:1px}.key-dot{width:5px;height:5px;background:#e34234}.energy{margin-top:28px}.energy label{font-size:10px;display:flex;justify-content:space-between;color:#bda1a5}.energy output{color:#e9ada3;font:10px monospace}.energy input{width:100%;accent-color:var(--red);margin:16px 0 0;cursor:pointer}.focus-panel .local-note{font-size:8px;letter-spacing:1px;line-height:2;color:#90737a;margin-top:29px}footer{position:relative;z-index:2;margin:0 5%;border-top:1px solid #e342342b;min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:25px}.module-nav{display:flex;gap:9px}.module-nav button{padding:12px 19px;color:#b58f94;background:none;border:1px solid transparent;font-size:11px;border-radius:3px}.module-nav button span{font:9px monospace;color:#a95950;margin-right:13px}.module-nav button.selected{color:#fff0e9;border-color:#e3423470;background:#e342341a}.module-nav button.selected span{color:var(--bright)}.module-nav button:hover{color:#ffdbd4}.footer-caption{font-size:8px;color:#917176;letter-spacing:1px}.footer-caption span{padding-left:20px;color:#cb796e}.sr-only{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
@media(min-width:1500px){main{width:85%}.model-view{height:780px;max-height:calc(100svh - 216px)}}
@media(max-width:1000px){header{height:78px;gap:20px}main{grid-template-columns:24% 54% 22%;width:94%}.intro h1{font-size:40px;letter-spacing:-2px}.focus-panel{padding-left:12px}.description{font-size:11px}.eyebrow{font-size:8px;letter-spacing:1px}.inspect{font-size:10px;gap:10px;padding:12px}.canvas-wrap{inset:-20px -65px 0}.footer-caption{display:none}.focus-panel h2{font-size:21px}}
@media(max-width:850px){header{height:72px;margin-inline:6%;gap:14px}.identity{font-size:8px;letter-spacing:1px}.identity span{padding:0 4px}.preview-label{font-size:8px;letter-spacing:1px}.preview-label i{display:none}.brand{font-size:27px}main{display:flex;flex-direction:column;width:88%;min-height:0}.intro{width:100%;padding:35px 0 0}.intro h1{font-size:43px;line-height:1.05;letter-spacing:-2px}.eyebrow{margin-bottom:17px}.description{font-size:13px;max-width:250px}.inspect{padding:13px 16px;font-size:11px;position:relative;z-index:2}.reference-note{display:none}.model-view{width:100%;height:470px;min-height:470px;margin-top:5px}.canvas-wrap{inset:-30px -35px 0}.model-tag{top:6px;font-size:8px}.axis-label{display:none}.model-tools button{min-height:44px;padding-inline:12px;font-size:10px}.interaction-hint{font-size:9px;bottom:67px}.interaction-hint span{margin-inline:4px}.focus-panel{width:100%;padding:22px 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:14px 25px}.panel-top{grid-column:1/-1;margin-bottom:0}.module-symbol{display:none}.focus-panel h2{font-size:25px;margin:0}.focus-panel>p{font-size:11px;margin:0;max-width:none}.rule,.local-note{display:none}.energy{margin:0}.layer-key{font-size:8px;align-self:center}.energy input{height:22px;margin-top:6px}footer{margin:0 6%;padding:15px 0 24px;min-height:0}.module-nav{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}.module-nav button{min-height:46px;text-align:left;border-color:#e3423425;background:#e3423405;padding:12px 15px}.module-nav button span{margin-right:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* A native scrolling portfolio drives the assembly; no wheel interception. */
.journey{position:relative}.journey .interface{position:sticky;top:0;height:100svh;min-height:0}.journey .intro{visibility:hidden}.portfolio-story{position:relative;margin-top:-100svh;pointer-events:none;z-index:3}.chapter{min-height:100svh;display:flex;align-items:center;padding:130px 5% 160px}.chapter article{width:23%;pointer-events:auto}.chapter h1,.chapter h2{font-size:clamp(32px,3.8vw,58px);line-height:1.07;letter-spacing:-2px;margin:0 0 24px}.chapter em{font-style:normal;color:var(--bright)}.chapter p:not(.eyebrow){color:#c4a8ab;font-size:13px;line-height:1.8}.chapter-note{display:block;margin-top:26px;font:9px/1.7 monospace;letter-spacing:1.4px;color:#cf756b}.chapter .inspect{display:inline-flex;margin-top:22px}.assembly-meter{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:5;width:230px;background:#160b10ee;border:1px solid #e3423444;padding:12px 15px;font:9px monospace;letter-spacing:1.3px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:9px;color:#e69d93;pointer-events:none}.assembly-meter i{height:2px;width:100%;background:#6d302c}.assembly-meter b{display:block;height:100%;width:0;background:#ff614e;box-shadow:0 0 9px #ff614e}
@media(max-width:850px){.journey .interface header{height:65px}.journey main{height:calc(100svh - 65px);display:block;width:88%}.journey .intro,.journey .focus-panel,.journey footer{display:none}.journey .model-view{height:55svh;min-height:300px;margin:0}.journey .canvas-wrap{inset:0 -24px 0}.journey .model-tools{bottom:0}.journey .interaction-hint{bottom:55px}.journey .model-tag{top:15px;font-size:7px}.chapter{padding:calc(55svh + 80px) 6% 95px;align-items:flex-start}.chapter article{width:100%;max-width:470px;background:linear-gradient(#08060900,#080609 22%);padding-top:15px}.chapter h1,.chapter h2{font-size:32px;margin-bottom:12px;letter-spacing:-1px}.chapter h1 br,.chapter h2 br{display:none}.chapter h1 em,.chapter h2 em{margin-left:6px}.chapter .eyebrow{margin-bottom:10px}.chapter p:not(.eyebrow){font-size:12px;margin:0;line-height:1.65}.chapter-note{font-size:8px;margin-top:15px}.assembly-meter{bottom:9px;padding:9px 12px}.chapter .inspect{margin-top:12px}}

/* The narrative stays beside the model instead of passing across it. */
.journey .intro{visibility:visible}.portfolio-story .chapter article{visibility:hidden;pointer-events:none}.journey .intro h1,.journey .intro h2{font-size:clamp(32px,3.8vw,58px);line-height:1.07;letter-spacing:-2px;margin-bottom:24px}.journey .intro em{font-style:normal;color:var(--bright)}.journey .intro p:not(.eyebrow){color:#c4a8ab;font-size:13px;line-height:1.8}.journey .intro .inspect{display:inline-flex}
@media(max-width:850px){.journey .intro{display:block;position:absolute;top:calc(55svh + 16px);padding:0;left:0;width:100%;max-width:620px}.journey .intro h1,.journey .intro h2{font-size:32px;line-height:1.12;margin:0 0 12px;letter-spacing:-1px}.journey .intro h1 br,.journey .intro h2 br{display:none}.journey .intro em{margin-left:6px}.journey .intro p:not(.eyebrow){font-size:12px;line-height:1.65;margin:0}.journey .intro .eyebrow{margin-bottom:10px}.journey .intro .inspect{margin-top:14px}}

#detail-dialog{width:min(740px,94vw);border:1px solid #e3423470;background:#10080d;color:var(--text);padding:24px;max-height:94svh;overflow:auto}#detail-dialog::backdrop{background:#080609dd;backdrop-filter:blur(5px)}.detail-heading{display:flex;gap:20px;align-items:flex-start;justify-content:space-between}.detail-heading h2{font-size:24px}.detail-heading .eyebrow{margin-bottom:14px}.detail-heading button{background:#e3423420;border:1px solid #e3423455;color:#ffb9ab;padding:10px;white-space:nowrap}#piece-preview{height:min(430px,53svh);background:radial-gradient(#3a101b70,transparent 65%)}#piece-preview canvas{display:block;width:100%;height:100%}.detail-caption{font:11px/1.8 monospace;color:#c5908d}.model-tools{flex-wrap:wrap}@media(max-width:450px){.model-tools button{padding-inline:8px;font-size:9px}.detail-heading h2{font-size:19px}#detail-dialog{padding:18px}}
.piece-picker{display:flex;gap:10px}.piece-picker button{background:#e3423420;border:1px solid #e3423455;color:#ffb9ab;padding:10px;font-size:12px}#piece-id{font-size:10px}#piece-preview{height:min(370px,45svh)}
.journey .interface>.canvas-wrap{position:absolute;inset:0;z-index:0;mask-image:none;pointer-events:none}.journey .interface>.canvas-wrap canvas{pointer-events:none}.journey .model-view{touch-action:pan-y;cursor:grab}.journey .model-view:active{cursor:grabbing}.journey header,.journey .intro,.journey .focus-panel,.journey footer{position:relative;z-index:2}.journey .intro,.journey .focus-panel{text-shadow:0 1px 9px #080609} @media(max-width:850px){.journey .intro{position:absolute}.journey .focus-panel{display:none}}

.journey .intro::before,.journey .focus-panel::before{content:'';position:absolute;inset:-12px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,#080609db 20%,#08060988 65%,transparent 95%)}


/* A restrained blend of the original portfolio and the glowing neural core. */
.model-summary{display:flex;gap:18px;padding-top:18px;margin-top:22px;border-top:1px solid #e3423425;font:8px/1.7 monospace;color:#aa7e7b}.model-summary b{display:block;font:18px/1.4 Arial,sans-serif;color:#df9b8f}.journey .focus-panel h2{font-size:26px}.journey .model-tools{gap:5px;flex-wrap:wrap;max-width:600px;margin-inline:auto}.journey .model-tools button{font-size:9px}.journey .model-tools #core-view{color:#ffbaaa;border-color:#e3423460;background:#2b1016d9}.journey .model-tools #core-view[aria-pressed=true]{background:#8b2925;color:#fff1eb}.journey .preview-label{color:#d18f82;font-size:9px}@media(max-width:850px){.journey .model-tools button{padding:9px 8px;font-size:8px;min-height:37px}.journey .interaction-hint{bottom:87px}.journey .preview-label{font-size:7px}}
