:root{color-scheme:dark;font-family:"PingFang SC","Noto Sans SC",system-ui,sans-serif;color:#eee5d4;background:#111b23;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #e6bc78;outline-offset:5px}a{color:inherit;text-decoration:none}#world{position:fixed;inset:0}#world canvas{display:block;width:100%;height:100%;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#101921 0%,#101921e8 18%,#10192155 35%,transparent 57%),linear-gradient(0deg,#101921b0,transparent 20%)}header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:35px 4.1%;z-index:4}.brand{display:flex;align-items:center;gap:13px;font-family:Georgia,serif;font-size:20px;letter-spacing:4px}.crest{border:1px solid #a48961;border-radius:50% 50% 42% 42%;width:39px;height:46px;display:grid;place-items:center;color:#d6b881;font-style:italic;font-size:28px;letter-spacing:0}.brand-sub{display:block;font-family:system-ui;font-size:7px;letter-spacing:2px;color:#b3ada1;margin-top:5px}nav{display:flex;gap:32px;align-items:center;font-size:11px}.edition{color:#b4b4ad;letter-spacing:2px}nav button,.scene-controls button{border:1px solid #85867d54;background:#18232bd9;color:#e1d8c7;border-radius:4px;padding:12px 18px}nav button span{padding-left:18px;color:#d2ad76}.intro{position:absolute;top:28%;left:6.3%;pointer-events:none;z-index:2}.intro button{pointer-events:auto}.eyebrow{font-size:9px;letter-spacing:3px;color:#c0a16e;margin:0 0 28px}.eyebrow>span{display:inline-block;width:5px;height:5px;background:#d2ba82;border-radius:50%;margin-right:8px;box-shadow:0 0 10px #d2ba82}h1{font-family:"Songti SC","STSong",Georgia,serif;font-size:clamp(34px,3.2vw,54px);font-weight:400;line-height:1.45;letter-spacing:5px;margin:0 0 22px}.magic-word{color:#d5b27a;display:block}.lead{font-size:13px;line-height:1.95;letter-spacing:1px;color:#c2c3bf}.invitation{font-size:11px;line-height:2;color:#8e9a9f;margin:24px 0}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid #b9a070;border-radius:3px;background:#ccb17c;color:#172029;padding:13px 20px;font-size:12px;font-weight:550}.index-number{margin-top:35px;font-family:Georgia;font-size:14px;color:#d2bc91}.index-number>span{color:#566369;margin:0 7px}.index-number small{display:block;font-size:9px;font-family:system-ui;color:#798b94;margin-top:12px;letter-spacing:1px}#hotspots{position:fixed;inset:0;pointer-events:none;z-index:3}.hotspot{position:absolute;pointer-events:auto;display:flex;gap:7px;align-items:center;padding:6px 9px 6px 6px;border:1px solid #d4bc8c60;border-radius:30px;background:#15212ed9;color:#eee2ca;font-size:10px;white-space:nowrap;box-shadow:0 2px 10px #0003;transition:opacity .25s,background .2s;transform:translate(-50%,-50%)}.hotspot:hover{background:#4a4435}.hotspot .dot{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid #cfb17c;border-radius:50%;font-family:Georgia;color:#e1c894;font-size:10px}#scene-status{position:fixed;bottom:90px;left:62%;transform:translateX(-50%);font-size:10px;letter-spacing:1px;color:#c8bfad;pointer-events:none;z-index:4;transition:opacity 1s}.scene-controls{position:fixed;bottom:84px;right:4%;display:flex;gap:8px;z-index:4}.scene-controls button{padding:9px 12px;font-size:14px}.scene-controls span{font-size:10px;margin-left:5px}footer{position:fixed;bottom:0;left:4.1%;right:4.1%;height:58px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #7e898529;color:#7c8d97;font-size:8px;letter-spacing:1.8px;z-index:2}footer i{font-style:normal;margin:0 12px;color:#b5a07c}.instructions{font-size:10px;letter-spacing:1px}.moon{font-size:17px;color:#b6c3cb}.moon span{font-size:10px;margin-left:6px;letter-spacing:1px}dialog{border:1px solid #a88d614d;border-radius:7px;color:#e9ddc4;background:#18232df5;box-shadow:0 30px 150px #0008;padding:0}dialog::backdrop{background:#050a106b;backdrop-filter:blur(3px)}#detail{width:min(430px,calc(100vw - 32px));margin:auto 5% auto auto}.detail-shell{padding:40px 32px 25px;position:relative}.close{position:absolute;right:17px;top:13px;border:0;background:none;font-size:26px;color:#b8bdba;padding:5px 9px}.detail-shell .eyebrow{margin:0 0 14px;font-size:9px}h2{font-family:"Songti SC",Georgia,serif;font-size:28px;font-weight:400;margin:0 0 18px}#detail-summary{font-size:13px;line-height:1.9;color:#b2bfc4}.fine-print{font-size:10px;line-height:1.7;color:#83949c;margin:24px 0 0}#detail-link{margin-top:24px;width:100%}#detail-private{font-size:12px;color:#baab8c}#demo{margin-top:24px}.demo-heading{font-size:10px;letter-spacing:2px;color:#ceb584}.demo-action{width:100%;border:1px solid #718071;background:#354039;color:#ede0bc;border-radius:4px;padding:16px;margin-top:10px}.demo-result{font-size:12px;color:#d7c292;text-align:center;min-height:18px}.case-screen{padding:24px 20px;background:#0d171d;border:1px solid #6a7158;border-radius:5px}.case-screen b{font-family:Georgia;font-size:23px;font-weight:400;display:block;margin-bottom:14px}.case-screen p{font-size:12px;line-height:1.8;color:#a8b4b3}.demo-tabs{display:flex;gap:7px;margin-top:13px}.demo-tabs button{border:1px solid #786849;background:#18242c;color:#baa785;padding:7px 13px;border-radius:2px;font-size:11px}.demo-tabs button[aria-pressed=true]{background:#cbb17f;color:#18242c}.bird-stage{position:relative;height:150px;border:1px solid #616657;border-radius:4px;background:linear-gradient(#1e3546,#22333a);overflow:hidden;touch-action:none;cursor:crosshair}.bird{position:absolute;width:26px;height:26px;border-radius:50%;background:#7caeca;left:30px;bottom:30px;box-shadow:inset -5px -4px 0 #346780;z-index:2}.bird:after{content:'›';position:absolute;right:-8px;top:0;color:#e7b864;font-size:27px}.bird-eye{position:absolute;right:5px;top:5px;width:4px;height:4px;background:#0e202b;border-radius:50%}.tower{position:absolute;right:25px;bottom:16px;width:55px;height:80px;border:5px solid #ab8e62;background:repeating-linear-gradient(0deg,#5d6462 0px,#5d6462 16px,#34454d 17px,#34454d 21px);transform-origin:bottom right;transition:transform .6s}.bird-stage.fired .tower{transform:rotate(78deg) translateY(13px)}.bird-stage.fired .bird{animation:launch .75s forwards}.ground{position:absolute;left:0;bottom:0;right:0;height:17px;background:#4b5345}@keyframes launch{0%{left:30px;bottom:30px}50%{left:50%;bottom:100px}100%{left:75%;bottom:20px;transform:rotate(300deg)}}#catalog{width:min(900px,calc(100vw - 32px));max-height:83vh;padding:34px}.catalog-head{display:flex;position:relative;justify-content:space-between}.catalog-head .close{right:-10px;top:-14px}.catalog-head .eyebrow{margin-bottom:13px}.catalog-head p:not(.eyebrow){font-size:12px;color:#9fadb3}.search-label{display:flex;align-items:center;gap:10px;padding:12px 15px;border:1px solid #65716f;background:#111c24;border-radius:4px;margin:22px 0}.search-label input{border:0;background:none;color:#ddd;width:100%;font:inherit;font-size:12px;outline:none}#project-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.project-card{border:1px solid #5d685742;border-radius:4px;background:#202d351f;color:inherit;text-align:left;padding:18px;cursor:pointer}.project-card:hover{background:#344138}.project-card b{font-size:13px;font-weight:500;display:block}.project-card p{color:#9aadb4;line-height:1.7;font-size:11px;margin-bottom:14px}.project-card small{color:#bca77d;font-size:9px}.empty-results{color:#a6b2b7;font-size:13px}
@media(max-width:760px){header{padding:20px 22px}.brand{font-size:16px}.brand-sub{font-size:5px}.crest{width:31px;height:36px;font-size:23px}.edition{display:none}nav button{font-size:10px;padding:10px 12px}.intro{left:26px;top:105px;pointer-events:none}.intro .eyebrow{font-size:7px;margin-bottom:10px}h1{font-size:30px;line-height:1.45;letter-spacing:3px;margin-bottom:10px}.magic-word{display:inline}.lead{font-size:10px;line-height:1.8}.invitation,.index-number{display:none}.intro .primary{margin-top:7px;padding:9px 14px;font-size:10px;gap:20px}.vignette{background:linear-gradient(180deg,#101921 0%,#101921e5 19%,transparent 44%,transparent 78%,#101921 100%)}footer{height:49px;left:23px;right:23px;font-size:6px;letter-spacing:.6px}.instructions{display:none}.scene-controls{bottom:72px;right:22px}.scene-controls button{padding:7px 10px}.scene-controls span{font-size:9px}#scene-status{left:40%;bottom:110px;font-size:9px}.hotspot{font-size:9px;padding:4px 7px 4px 4px}.hotspot .dot{width:14px;height:14px;font-size:8px}#detail{margin:auto}#catalog{padding:25px;max-height:88vh}#project-list{grid-template-columns:1fr}.detail-shell{padding:36px 25px 23px}.moon span{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}
.case-picture{width:100%;height:135px;object-fit:cover;border-radius:3px;margin-bottom:14px}.case-screen b{font-size:19px}.case-screen{padding:16px}.case-source{display:block;font-size:10px;color:#98afab;margin-top:12px}.case-link{display:block;font-size:11px;color:#d6bd8c;margin-top:12px}.detail-shell{max-height:88vh;overflow:auto}

@media(min-width:761px) and (max-height:800px){.intro{top:22%}h1{font-size:40px}.invitation{margin:16px 0}.index-number{margin-top:22px}}

.asset-debug{position:fixed;left:12px;bottom:65px;z-index:10;max-width:min(420px,90vw);max-height:40vh;overflow:auto;padding:12px;background:#101921ee;border:1px solid #b9a070;font-size:11px}.asset-debug pre{white-space:pre-wrap}.asset-debug a{text-decoration:underline}
@media(max-width:760px){.hotspot[data-project="carl-skills"]{min-height:36px;min-width:88px}}

body[data-selected="goodcase"] .intro{opacity:0;pointer-events:none}body[data-selected="goodcase"] .intro button{pointer-events:none}body[data-selected="goodcase"] .vignette{opacity:.2}body[data-selected="goodcase"] #detail{position:fixed;top:50%;bottom:auto;transform:translateY(-50%);z-index:8}body[data-selected="goodcase"] .hotspot:not([data-project="goodcase"]){opacity:.3}
@media(max-width:760px){body[data-selected="goodcase"] #detail{top:auto;bottom:0;left:0;right:0;transform:none;width:100%;max-height:45vh}body[data-selected="goodcase"] .detail-shell{max-height:45vh}body[data-selected="goodcase"] .detail-shell>h2{font-size:20px}body[data-selected="goodcase"] .detail-shell>#detail-summary{display:none}body[data-selected="goodcase"] .case-picture{height:90px}}

.walk-controls{position:fixed;bottom:75px;left:25px;z-index:7;max-width:calc(100vw - 40px)}#walk-hint{font-size:11px;color:#dfc79c;text-shadow:0 1px 4px #000}#nearby-preview{padding:12px 18px;border:1px solid #dcc086;border-radius:5px;background:#d6b782;color:#132331;font:inherit;font-size:13px;box-shadow:0 4px 18px #0008}#move-pad{display:none;gap:5px;margin-top:10px}#move-pad button{touch-action:none;width:44px;height:44px;color:#ead3a8;border:1px solid #b69a6b;background:#1c2b35df;border-radius:9px;font-size:22px}body[data-roaming="true"] .intro{display:none}body[data-roaming="true"] .vignette{opacity:.15}body[data-selected] .walk-controls{opacity:.35;pointer-events:none}@media(max-width:760px){.walk-controls{bottom:62px;left:16px}#walk-hint{font-size:9px;max-width:220px}#move-pad{display:flex}#nearby-preview{position:fixed;right:18px;bottom:145px;max-width:220px}.scene-controls{bottom:66px}body[data-roaming="true"] .hotspot{opacity:.6}}

#play-explosion{background:#ccb17c;color:#172029;border-color:#dcc086}#play-explosion:disabled{opacity:.5;cursor:wait}
#explosion-player{position:fixed;inset:0;z-index:15;pointer-events:none}#explosion-player[hidden]{display:none}.explosion-title{position:absolute;top:35px;left:0;right:0;text-align:center;color:#dfc89e;font-size:16px;letter-spacing:3px}.explosion-title p{font-size:12px;color:#a8b4b8;letter-spacing:1px;margin:12px 0}.explosion-actions{position:absolute;bottom:32px;left:0;right:0;display:flex;justify-content:center;gap:12px}.explosion-actions button{pointer-events:auto;border:1px solid #ab956c;border-radius:5px;padding:12px 24px;background:#20303b;color:#e8d6b5;font-size:13px}#explosion-replay{background:#ccb17c;color:#172029}.explosion-part-label{position:absolute;transform:translate(-50%,35px);color:#e8d6b5;background:#111b23dd;border:1px solid #a78b6266;border-radius:20px;padding:5px 12px;font-size:12px;white-space:nowrap}body[data-explosion="true"] header,body[data-explosion="true"] footer,body[data-explosion="true"] .intro,body[data-explosion="true"] .walk-controls,body[data-explosion="true"] #hotspots,body[data-explosion="true"] .scene-controls,body[data-explosion="true"] .vignette,body[data-explosion="true"] #scene-status,body[data-explosion="true"] .asset-debug{display:none!important}
@media(max-width:760px){.scene-controls{max-width:calc(100vw - 130px);flex-wrap:wrap;justify-content:flex-end}#play-explosion{position:absolute;right:0;bottom:120px;white-space:nowrap}.explosion-title{top:28px;font-size:14px}.explosion-actions{bottom:30px}.explosion-actions button{padding:11px 16px}.explosion-part-label{font-size:10px;padding:4px 8px}}
.explosion-title span,.explosion-title p{width:max-content;max-width:90vw;margin-left:auto;margin-right:auto;padding:6px 14px;border-radius:20px;background:#111b23c9;text-shadow:0 1px 3px #000}.explosion-title span{display:block}.explosion-title p{margin-top:6px}
#object-focus{position:fixed;inset:0;z-index:15;pointer-events:none}#object-focus[hidden]{display:none}body[data-focus="true"] header,body[data-focus="true"] footer,body[data-focus="true"] .intro,body[data-focus="true"] .walk-controls,body[data-focus="true"] #hotspots,body[data-focus="true"] .scene-controls,body[data-focus="true"] .vignette,body[data-focus="true"] #scene-status,body[data-focus="true"] .asset-debug{display:none!important}body[data-focus="true"] #detail{position:fixed;right:3%;left:auto;top:50%;bottom:auto;transform:translateY(-50%);margin:0;max-height:85vh;overflow:auto;z-index:20;width:min(430px,42vw)}@media(max-width:760px){body[data-focus="true"] #detail{left:12px;right:12px;bottom:12px;top:auto;transform:none;width:calc(100vw - 24px);max-height:42vh}.detail-shell{padding:30px 22px 20px}}
/* Exterior atmosphere only; the study's materials and controls retain their identity. */
:root{background:#71695e}body{background:#71695e}.vignette{background:linear-gradient(90deg,#514c45e0 0%,#514c45a6 18%,#514c4530 35%,transparent 57%),linear-gradient(0deg,#514c4566,transparent 20%)}.intro{text-shadow:0 1px 8px #302a2233}@media(max-width:760px){.vignette{background:linear-gradient(180deg,#514c45c9 0%,#514c456b 19%,transparent 44%,transparent 78%,#514c4590 100%)}}

/* The projector exposes independent assembly and portfolio playback actions. */
.projector-actions{display:flex;gap:8px}#play-cases,#focus-preview{background:#ccb17c;color:#172029;border-color:#dcc086}#play-cases:disabled{opacity:.5;cursor:wait}.explosion-actions button[hidden]{display:none}
@media(max-width:760px){.projector-actions{position:absolute;right:0;bottom:120px;white-space:nowrap}.projector-actions #play-explosion{position:static}.explosion-actions{gap:6px;padding:0 10px}.explosion-actions button{padding:10px 12px;font-size:12px}}
