:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#333e37;background:#e8e9df;font-synthesis:none;--muted:#707c70;--green:#4a6552;--line:#dcded4;--paper:#faf9f4}
*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}body{margin:0}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #548566;outline-offset:4px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
main,#stage{position:fixed;inset:0;overflow:hidden}#stage{background:radial-gradient(ellipse at 50% 42%,#f0f0e6 0%,#e5e7db 65%,#d8ded0 100%)}#room{display:block;width:100%;height:100%;touch-action:none;outline:none}
.masthead{position:fixed;z-index:10;top:max(20px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;width:max-content;max-width:calc(100% - 40px);padding:10px 15px 10px 20px;border:1px solid #ffffffa6;border-radius:18px;background:#fafbf16b;box-shadow:0 8px 32px #263a2010,inset 0 1px 0 #ffffff8a;backdrop-filter:blur(20px) saturate(1.25);-webkit-backdrop-filter:blur(20px) saturate(1.25)}
.brand{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;white-space:nowrap}.brand-mark{font-family:Georgia,serif;font-size:30px;line-height:1;color:var(--green)}.room-nav{display:flex;align-items:center;gap:3px;padding-left:16px;border-left:1px solid #76856b26}.room-nav button,.quiet{padding:10px 12px;font-size:12px;border-radius:10px;white-space:nowrap;transition:background .2s}.room-nav button:hover,.quiet:hover{background:#ffffff70}.quiet{color:var(--green);padding:10px 5px}
.light-controls{position:relative;border-left:1px solid #76856b26;padding-left:14px}.light-controls summary{list-style:none;cursor:pointer;display:flex;gap:8px;align-items:center;padding:7px 3px;border-radius:8px}.light-controls summary::-webkit-details-marker{display:none}#phase-icon{font-size:20px;line-height:1;color:#61794f}#clock-value{font:14px Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:.5px}.light-popover{position:absolute;top:calc(100% + 22px);right:-15px;width:254px;padding:20px;border:1px solid #ffffffe0;border-radius:16px;background:#f7f8efe8;box-shadow:0 10px 40px #293d241c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.time-heading>span{font-size:13px}.time-heading small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.time-modes{display:flex;padding:4px;margin:17px 0 14px;background:#e1e7d9;border-radius:25px;gap:3px}.time-modes button{flex:1;padding:8px 6px;font-size:11px;border-radius:20px;color:#62705e}.time-modes button[aria-pressed=true]{background:var(--paper);color:#3e5c46;box-shadow:0 1px 5px #3846310c}.timeline{display:flex;align-items:center;gap:10px;color:#7a886e;font-size:12px}.timeline input{width:100%;min-width:0;accent-color:#648266;height:20px;cursor:pointer}
.hotspot{position:absolute;left:0;top:0;transform:translate(-50%,-50%);background:#faf9f1bf;border:1px solid #ffffffb0;border-radius:30px;padding:7px 12px 7px 7px;display:flex;align-items:center;gap:7px;color:#405347;box-shadow:0 3px 15px #30463712;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap;font-size:10px;transition:background .2s,opacity .2s}.hotspot:hover{background:#fffffff0}.hotspot i{width:20px;height:20px;background:#56735d;color:#fff;border-radius:50%;display:grid;place-items:center;font-style:normal;font:11px Georgia,serif}.loading,#fallback{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);font-size:13px;color:var(--green);background:var(--paper);padding:22px;border-radius:12px}#fallback{width:min(90%,420px);line-height:1.8}.loading{pointer-events:none}
.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);line-height:1.8;margin:0 0 12px}dialog{position:fixed;inset:100px 24px 24px auto;margin:0;width:380px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);border:1px solid #fff;border-radius:18px;background:#faf9f5f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#354239;padding:36px 30px;box-shadow:0 20px 80px #172b2626;overflow-y:auto}dialog::backdrop{background:#1e30220c}#close-detail{position:absolute;top:12px;right:15px;font-size:25px;width:32px;height:32px;color:#7e8b7b}dialog h2{font-size:26px;font-weight:500;margin:0 0 22px}#detail-body{font-size:13px;line-height:1.95;color:#6a7569}#detail-body h3{font-size:15px;font-weight:500;color:#3c5945;margin:22px 0 8px}#detail-body p{margin:12px 0}#detail-body blockquote{border-left:2px solid #bac9ad;margin:24px 0;padding-left:16px;color:#3c5642}#detail-body ul{padding-left:18px}#detail-body .chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}#detail-body .chips span{font-size:11px;background:#e9ede3;padding:5px 11px;border-radius:20px}.content-note{font-size:11px;color:#8a9287!important;border-top:1px solid var(--line);padding-top:18px;margin-top:24px!important}.project-choice{display:block;width:100%;border-bottom:1px solid var(--line);text-align:left;padding:13px 0;font-size:13px}.project-choice span{float:right;color:#879480}.project-choice[aria-pressed=true]{color:#42614a;font-weight:600}#project-info{background:#edf0e8;padding:1px 14px 12px;border-radius:8px;margin:15px 0}.return-link{padding:14px 0;color:#4a6552;font-size:12px;margin-top:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:760px){.masthead{top:max(12px,env(safe-area-inset-top));max-width:none;width:calc(100% - 24px);display:grid;grid-template-columns:1fr auto auto;gap:2px 14px;padding:9px 14px;border-radius:16px}.brand{font-size:12px}.brand-mark{font-size:27px}.quiet{font-size:10px;padding:8px 0}.light-controls{padding-left:12px}.light-controls summary{padding:5px 0}#clock-value{font-size:12px}#phase-icon{font-size:18px}.room-nav{grid-column:1 / -1;grid-row:2;justify-content:space-between;border-left:0;border-top:1px solid #76856b1c;padding:5px 0 0;margin-top:5px;gap:4px}.room-nav button{font-size:11px;padding:8px 10px;flex:1}.light-popover{top:calc(100% + 65px);right:-14px;width:242px}.hotspot{font-size:9px;padding:5px 8px 5px 5px;gap:4px}.hotspot i{width:18px;height:18px;font-size:10px}dialog{inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px;width:calc(100vw - 24px);max-width:none;max-height:68dvh;padding:28px 24px}dialog h2{font-size:23px}}
@media(max-height:480px) and (min-width:761px){.masthead{top:10px;padding-top:5px;padding-bottom:5px}dialog{top:70px;bottom:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.room-nav button[aria-pressed=true]{background:#ffffffb8;box-shadow:0 2px 12px #314c2510;color:#345437}
#area-hud{position:absolute;z-index:3;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 36px);width:max-content;min-width:360px;padding:15px 20px;border:1px solid #ffffffa6;border-radius:18px;background:#f6f8eaa6;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 35px #293e2412}
#area-breadcrumb{font-size:10px;color:#74816d;margin:0 0 6px}#area-name{font-size:14px;color:#3c573f;font-weight:500;margin-left:6px}#area-hint{font-size:11px;color:#78846f;margin:0 0 12px}#area-objects{display:flex;gap:7px;flex-wrap:wrap}#area-objects button{background:#fff9;padding:9px 12px;border:1px solid #ffffffe0;border-radius:10px;text-align:left;font-size:11px;color:#426046;display:flex;gap:14px;justify-content:space-between;flex:1;white-space:nowrap}#area-objects button:hover,#area-objects button:focus-visible{background:#f7ffea;box-shadow:0 0 16px #d7ffb798}#area-objects span{color:#819777}
#object-tip{position:absolute;top:110px;left:50%;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:16px;background:#f3ffe6ed;box-shadow:0 0 25px #c5e59b65;padding:8px 9px 8px 17px;border:1px solid #ffffffe0;border-radius:13px;font-size:12px;white-space:nowrap}#open-selected{padding:10px 15px;background:#456543;border-radius:9px;color:#fff;font-size:11px}
.project-entry{border-bottom:1px solid #d6ddcf;padding:13px 0}.project-entry summary{cursor:pointer;color:#3c5945}.project-entry p{font-size:12px}
.show-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.show-card{position:relative;min-height:184px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:8px;padding:18px;border-radius:10px;background:linear-gradient(155deg,var(--cover-end),var(--cover-start));color:#fff;overflow:hidden;text-align:left;box-shadow:inset 0 -55px 55px #07192044}.show-card span{position:relative;font-size:19px;letter-spacing:1px}.show-card small{font-size:9px;opacity:.75}.show-card:hover{outline:2px solid #93b386;outline-offset:3px}.show-card.show-cover{background-image:linear-gradient(0deg,#132929ed,transparent),var(--cover-artwork);background-size:cover;background-position:65% center}#detail-back{font-size:11px;margin:0 0 20px;padding:0;color:#60805c}
dialog[data-theme=anime]{inset:100px 24px 24px;width:calc(100vw - 48px);max-width:1150px;height:min(690px,calc(100dvh - 124px));margin:auto;padding:52px;color:#f1eadb;background:linear-gradient(90deg,#101d27ed 0%,#14232abd 48%,#17242b16 100%),var(--detail-artwork) 65% center/cover;box-shadow:0 20px 120px #0a162756;border:1px solid #b6bdbe66}dialog[data-theme=anime] h2{font-size:64px;letter-spacing:8px;font-weight:500;margin-bottom:22px}dialog[data-theme=anime] #detail-body{max-width:455px;color:#d0d6d4;font-size:14px;line-height:2.1}dialog[data-theme=anime] .eyebrow{color:#c6b183}dialog[data-theme=anime] .story-kicker{font-size:19px;color:#f1e5c9}dialog[data-theme=anime] blockquote{color:#efe3c7;border-color:#b8a27c;font-size:17px}dialog[data-theme=anime] .content-note{color:#a7b3b6!important;border-color:#a6b3b333;font-size:10px}dialog[data-theme=anime] #detail-back,dialog[data-theme=anime] #close-detail,dialog[data-theme=anime] .return-link{color:#d5c7a6}
@media(max-width:760px){#area-hud{width:calc(100% - 24px);max-width:none;min-width:0;bottom:max(12px,env(safe-area-inset-bottom));padding:13px 14px}#area-hint{font-size:10px;line-height:1.6;margin-bottom:9px}#area-objects{gap:5px}#area-objects button{padding:10px 7px;font-size:10px;gap:5px}#object-tip{top:124px;max-width:calc(100% - 24px);font-size:11px;gap:10px}dialog[data-theme=anime]{inset:116px 12px 12px;width:auto;height:auto;max-height:calc(100dvh - 128px);padding:34px 25px;background-image:linear-gradient(90deg,#101d27ed,#14232abf),var(--detail-artwork)}dialog[data-theme=anime] h2{font-size:46px}dialog[data-theme=anime] #detail-body{font-size:12px}dialog[data-theme=anime] .story-kicker{font-size:16px}dialog[data-theme=anime] blockquote{font-size:15px}.show-card{min-height:167px;padding:14px}.show-card span{font-size:17px}}
@media(max-height:480px) and (min-width:761px){#area-hud{padding:9px 15px;bottom:10px}#area-hint{display:none}#area-breadcrumb{margin-bottom:8px}dialog[data-theme=anime]{inset:70px 16px 12px;height:auto;padding:25px 35px}dialog[data-theme=anime] h2{font-size:36px;margin-bottom:12px}}
/* Compact anchors keep the new bed and its closely spaced devices unobscured. */
/* Icon-only controls projected inside the print; no card, fill, blur, or border. */
#poster-controls{position:absolute;inset:0;z-index:2;pointer-events:none;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
#poster-controls>button,.poster-picker{position:absolute;transform:translate(-50%,-50%);width:32px;height:32px;padding:0;display:grid;place-items:center;color:#f5f0df;background:transparent;border:0;border-radius:4px;pointer-events:auto;cursor:pointer}
#poster-controls svg{width:var(--poster-icon-size,20px);height:var(--poster-icon-size,20px);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px #000b);pointer-events:none}
#poster-controls>button:hover,.poster-picker:hover{color:#fff;background:transparent}
#poster-controls>button:focus-visible,.poster-picker:focus-within{outline:1px solid #fff4d7;outline-offset:1px}
#poster-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
#poster-select option{background:#f8f7ed;color:#354d3c}
/* Transparent callouts: only the text receives pointer input, never the leader. */
.hotspot{width:0;height:0;transform:none;padding:0;border:0;border-radius:0;display:block;background:transparent!important;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:#3f4d42;pointer-events:none;font-size:11px;text-shadow:0 1px 3px #fff9;opacity:1;transition:opacity .18s}
.hotspot svg{position:absolute;width:160px;height:70px;left:-158px;top:-68px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1;opacity:.78;pointer-events:none}
.hotspot svg circle{fill:currentColor;stroke:none}
.hotspot span{position:absolute;left:-150px;top:-80px;min-height:44px;display:flex;align-items:center;white-space:nowrap;pointer-events:auto;letter-spacing:.04em}
.hotspot:hover{color:#243e2e}.hotspot:focus-visible{outline:0}.hotspot:focus-visible span{outline:1px solid currentColor;outline-offset:3px}
.hotspot.label-right svg{left:-2px;transform:scaleX(-1)}.hotspot.label-right span{left:40px}
body[data-label-light=dark] .hotspot{color:#eee9d9;text-shadow:0 1px 4px #172016b3}
body[data-labels=hover] .hotspot{opacity:0}body[data-labels=hover] .hotspot span{pointer-events:none}
body[data-labels=hover] .hotspot.is-revealed,body[data-labels=hover] .hotspot:focus-within{opacity:1}
body[data-labels=hover] .hotspot.is-revealed span,body[data-labels=hover] .hotspot:focus-within span{pointer-events:auto}
@media(max-width:760px){.hotspot{font-size:10px}}
@media(prefers-reduced-motion:reduce){.hotspot{transition:none}}
#toggle-labels{flex:0 0 44px;width:44px;min-height:44px;display:grid;place-items:center;padding:10px;background:transparent;border-radius:8px;color:#6b786c}
#toggle-labels svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#toggle-labels[aria-pressed=true]{color:#355d43}#toggle-labels[aria-pressed=true] .eye-slash{display:none}
body[data-labels=all] .hotspot{opacity:1}body[data-labels=all] .hotspot span{pointer-events:auto}
@media(max-width:760px){.room-nav #toggle-labels{flex:0 0 44px;padding:10px}}

.motion-control{display:flex;align-items:center;gap:9px;min-height:44px;font-size:12px;color:#4f6551}.motion-control input{accent-color:#617663;width:18px;height:18px}.sketch-preview{display:block;max-width:100%;max-height:65vh;margin:14px auto;object-fit:contain;border-radius:3px}
.theme-controls{position:relative}.theme-controls summary{cursor:pointer;list-style:none;font-size:12px;padding:10px;border-radius:8px;white-space:nowrap}.theme-controls summary::-webkit-details-marker{display:none}.theme-popover{position:absolute;right:0;top:calc(100% + 20px);width:248px;background:#f7f5edeF;border:1px solid #fff;border-radius:14px;padding:18px;box-shadow:0 10px 40px #27352226;backdrop-filter:blur(20px);color:#405044}.theme-popover label{display:block;font-size:12px;margin-bottom:8px}.theme-popover select{display:block;width:100%;min-height:42px;border:1px solid #bbc3b2;border-radius:7px;padding:8px;background:#ffffff66;color:inherit;font:inherit;font-size:12px}.theme-popover p{font-size:11px;line-height:1.7;min-height:38px;margin:10px 0 16px;color:#707a6a}.theme-popover select:focus-visible{outline:2px solid #548566;outline-offset:3px}body[data-theme-background=true] #stage{background-image:linear-gradient(rgb(28 37 36 / var(--theme-darkness,.12)),rgb(28 37 36 / var(--theme-darkness,.12))),var(--theme-artwork)!important;background-size:cover!important;background-position:center!important}@media(max-width:760px){.theme-controls summary{font-size:11px;padding:10px 5px}.theme-popover{right:0;top:calc(100% + 14px);width:min(260px,calc(100vw - 32px))}}

.theme-popover select + label{margin-top:16px}.theme-popover{max-height:calc(100dvh - 150px);overflow-y:auto}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contact-card{padding:16px;border:1px solid #c7cdbd;border-radius:12px;background:#ffffff40}.contact-card h3{margin:0 0 12px!important}.contact-empty{height:78px;border:1px dashed #c5cbbd;border-radius:8px}.contact-card small{display:block;margin-top:8px;color:#92998a;font-size:11px}.contact-card img{width:100%;height:auto;display:block}.contact-card a{display:block;margin-top:12px;color:#426046;font-size:12px}
.project-catalog { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.portfolio-card { padding:0 0 16px; text-align:left; border:1px solid #75806a30; border-radius:12px; overflow:hidden; background:#f5f2e9; color:#35483d; cursor:pointer; }
.portfolio-card img { display:block; width:100%; height:auto; aspect-ratio:1.6; object-fit:cover; }
.portfolio-card span,.portfolio-card small { display:block; margin:12px 14px 0; }
.portfolio-card span { font-size:18px; }
.portfolio-card small { font-size:12px; line-height:1.6; color:#647363; }
.portfolio-card:hover { border-color:#71836b; }
.portfolio-card:focus-visible,.project-related:focus-visible { outline:2px solid #527762; outline-offset:3px; }
.project-status { font-size:12px; letter-spacing:.04em; color:#687461; }
.project-links { display:flex; gap:20px; flex-wrap:wrap; margin:22px 0; }
.project-links a { color:#3a634e; text-underline-offset:5px; }
.project-screens { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:24px 0; }
.project-screens figure { margin:0; min-width:0; }
.project-screens a { display:flex; align-items:center; justify-content:center; background:#e7e7dd; border-radius:8px; min-height:180px; }
.project-screens img { display:block; width:100%; max-height:480px; object-fit:contain; }
.project-screens figcaption { font-size:12px; line-height:1.6; margin-top:10px; color:#687461; }
.project-related { border:0; border-bottom:1px solid #819179; background:transparent; padding:10px 0; color:#3c604d; cursor:pointer; text-align:left; line-height:1.6; }
.decision-outline { border-left:2px solid #819179; padding:12px 16px; background:#e2e5d955; line-height:1.9; }
@media(max-width:480px) { .project-catalog { gap:10px; } .portfolio-card span {font-size:16px;} .portfolio-card small {margin:8px 10px 0;} .portfolio-card span {margin:10px 10px 0;} .project-screens {grid-template-columns:1fr;} .project-screens img {max-height:560px;} }
dialog[data-presentation=screen]{inset:105px 6vw 30px;margin:0 auto;width:min(1040px,88vw);height:calc(100dvh - 135px);max-height:none;max-width:none;padding:40px 44px;background:#192d2df7;border:8px solid #35413c;box-shadow:0 28px 100px #14252166;color:#f1ecdc;transform-origin:center;}
dialog[data-presentation=screen] #detail-body{color:#c6d0c5;font-size:14px;}
dialog[data-presentation=screen] #detail-body h3,dialog[data-presentation=screen] .project-links a,dialog[data-presentation=screen] .project-related,dialog[data-presentation=screen] #detail-back,dialog[data-presentation=screen] #close-detail,dialog[data-presentation=screen] .return-link{color:#d8d9b2;}
dialog[data-presentation=screen] .eyebrow,dialog[data-presentation=screen] .project-status,dialog[data-presentation=screen] .project-screens figcaption{color:#b1c6b6;}
dialog[data-presentation=screen] .content-note{color:#a6b7a8!important;border-color:#a4bca230;}
dialog[data-presentation=screen] .project-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
dialog[data-presentation=screen] .portfolio-card{background:#29403c;color:#eee9da;border-color:#97ac823b;}
dialog[data-presentation=screen] .portfolio-card small{color:#bdcdbb;}
dialog[data-presentation=screen] .decision-outline{background:#d0dfba0c;}
.music-panel{position:fixed;z-index:15;right:24px;bottom:24px;width:330px;max-width:calc(100vw - 24px);padding:24px;border:1px solid #c9c3a3;border-radius:16px;background:#293c35f5;color:#f1ead7;box-shadow:0 15px 60px #10221c55;backdrop-filter:blur(16px);}
.music-panel[hidden]{display:none;}.music-panel h2{font-size:20px;font-weight:500;}.music-panel .eyebrow{color:#b7c7a1;}.music-close{position:absolute;right:12px;top:8px;color:#d6dec5;font-size:25px;}.music-picker{font-size:13px;display:block;}.music-picker input{display:block;margin-top:12px;width:100%;font-size:12px;}.music-status{font-size:12px;line-height:1.7;color:#bbc9b2;overflow-wrap:anywhere;}.music-panel select{width:100%;padding:10px;background:#eef0df;color:#354838;border:0;border-radius:5px;margin-bottom:12px;}.music-panel audio{width:100%;height:42px;}
@media(max-width:760px){dialog[data-presentation=screen]{inset:125px 10px 12px;width:calc(100vw - 20px);height:calc(100dvh - 137px);padding:28px 18px;border-width:5px;}dialog[data-presentation=screen] .project-catalog{gap:12px;}dialog[data-presentation=screen] #detail-body{font-size:13px;}.music-panel{right:12px;bottom:12px;}}
/* Object-shaped reading surfaces share the same accessible dialog and navigation. */
dialog[data-presentation=board],dialog[data-presentation=paper],dialog[data-presentation=tablet],dialog[data-presentation=phone],dialog[data-presentation=console],dialog[data-presentation=sports]{inset:105px 24px 24px;margin:0 auto;width:min(780px,calc(100vw - 48px));height:calc(100dvh - 129px);max-height:none;max-width:none;transform-origin:center;}
dialog[data-presentation=board]{border:12px solid #9e774d;border-radius:8px;background:radial-gradient(#70563624 .7px,transparent 1px) 0 0/5px 5px,#c7b089;box-shadow:0 18px 75px #18251b66,inset 0 0 20px #72532d33;}
dialog[data-presentation=board] .portfolio-card{background:#f2eddd;border-radius:2px;box-shadow:2px 5px 9px #4b3f2930;}
dialog[data-presentation=paper]{width:min(650px,calc(100vw - 48px));border:1px solid #e7dcc0;border-radius:3px;background:repeating-linear-gradient(0deg,transparent 0 29px,#b3b7a120 29px 30px),#f4efdf;padding:45px 42px;box-shadow:0 20px 65px #18251b55;}
dialog[data-presentation=tablet]{width:min(880px,calc(100vw - 48px));border:13px solid #333c3b;border-radius:32px;background:#e9eddf;padding:38px;box-shadow:0 0 0 2px #8d9690,0 24px 75px #12231f66;}
dialog[data-presentation=tablet]::before{content:'';position:absolute;left:50%;top:8px;width:6px;height:6px;border-radius:50%;background:#647776;}
dialog[data-presentation=phone]{width:min(390px,calc(100vw - 32px));border:9px solid #333a37;border-radius:38px;background:#eef0e5;padding:52px 24px 30px;box-shadow:0 0 0 2px #a6ada0,0 20px 80px #18251b66;}
dialog[data-presentation=phone]::before{content:'';position:absolute;left:calc(50% - 36px);top:12px;width:72px;height:18px;border-radius:20px;background:#303933;}
dialog[data-presentation=phone] #close-detail{top:32px;}
dialog[data-presentation=console]{border:10px solid #303939;border-radius:40px;background:#dfe8df;box-shadow:0 20px 80px #18251b66;}
dialog[data-presentation=sports]{border:10px solid #946a43;border-radius:12px;background:#e7eadb;}
dialog[data-presentation=screen]{border-color:#303b38;box-shadow:0 0 0 2px #8b9389,0 28px 100px #14252166;}
dialog[data-presentation=tablet][data-theme=anime]{background:linear-gradient(90deg,#172928ee,#172928cc),var(--detail-artwork) center/cover;}
@media(max-width:760px){dialog[data-presentation=board],dialog[data-presentation=paper],dialog[data-presentation=tablet],dialog[data-presentation=phone],dialog[data-presentation=console],dialog[data-presentation=sports]{inset:125px 10px 12px;width:calc(100vw - 20px);height:calc(100dvh - 137px);padding:30px 19px;}dialog[data-presentation=phone]{padding-top:52px;width:min(390px,calc(100vw - 20px));}dialog[data-presentation=tablet]{border-width:9px;}dialog[data-presentation=paper]{padding:36px 25px;}}

/* Cream speaker panel, matching the hard-shell device. */
.music-panel{background:#f7f3ebfa;color:#443f38;border-color:#d6cec1;box-shadow:0 15px 60px #30281c26;}
.music-panel .eyebrow,.music-status{color:#81776b;}.music-close{color:#6c6257;}
.music-panel select{background:#eae3d8;color:#443f38;}.music-panel input::file-selector-button{border:1px solid #d3c8b9;background:#eee6d9;color:#514638;border-radius:7px;padding:7px 10px;}
.music-panel audio{color-scheme:light;}

/* Desktop application chrome is exclusive to the computer's project browser. */
.computer-chrome{display:none}.detail-document{display:contents}
dialog[data-presentation=screen]{display:flex;flex-direction:column;padding:0;overflow:hidden;background:#f5f6f8;color:#24272d;border:6px solid #34373c;border-radius:14px;box-shadow:0 0 0 1px #8a8d92,0 28px 100px #12151b55;backdrop-filter:none}
dialog[data-presentation=screen]:not([open]){display:none}
dialog[data-presentation=screen] .computer-chrome{display:block;flex:none;background:#edf0f4;border-bottom:1px solid #d7dbe2}
.computer-titlebar{height:42px;display:flex;align-items:center;gap:10px;padding:0 102px 0 18px;font:500 12px system-ui;color:#424853;position:relative}
.computer-app-icon{background:#4074ca;color:white;padding:1px 4px;border-radius:4px;font-size:15px}
#computer-maximize{position:absolute;right:45px;top:0;width:44px;height:42px;color:#555b65;font-size:19px}
#computer-maximize:hover{background:#dce1e9}
dialog[data-presentation=screen] #close-detail{top:0;right:0;width:44px;height:42px;border-radius:0;color:#555b65;z-index:2;font-size:22px}
dialog[data-presentation=screen] #close-detail:hover{background:#c74343;color:white}
.computer-toolbar{display:flex;align-items:center;gap:13px;padding:9px 18px;background:#fff;font:12px system-ui;color:#707783;min-width:0}
.computer-toolbar button{border:1px solid #dde1e8;border-radius:5px;padding:6px 10px;color:#384252;background:#f8f9fb;white-space:nowrap}.computer-toolbar button:hover{background:#eaf0fb}
#computer-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.computer-divider{color:#b7bdc8}
dialog[data-presentation=screen] .detail-document{display:block;min-height:0;overflow:auto;padding:26px 32px 32px;flex:1;scrollbar-color:#b8bdc7 #f5f6f8}
dialog[data-presentation=screen] h2{font:600 27px/1.35 system-ui;color:#24272d;letter-spacing:0;margin-bottom:12px}
dialog[data-presentation=screen] #detail-body{color:#525b68;font:14px/1.85 system-ui}
dialog[data-presentation=screen] #detail-body h3{color:#303845;font-weight:600}
dialog[data-presentation=screen] .eyebrow,dialog[data-presentation=screen] .project-status,dialog[data-presentation=screen] .project-screens figcaption{color:#77808e}
dialog[data-presentation=screen] .portfolio-card{background:#fff;color:#26303e;border:1px solid #dce1e8;border-radius:10px;box-shadow:0 3px 10px #1b294008}
dialog[data-presentation=screen] .portfolio-card:hover{border-color:#8aa9df;box-shadow:0 5px 18px #35548718}
dialog[data-presentation=screen] .portfolio-card small{color:#6c7583}
dialog[data-presentation=screen] .project-links a,dialog[data-presentation=screen] .project-related,dialog[data-presentation=screen] #detail-back,dialog[data-presentation=screen] .return-link{color:#3168b4}
dialog[data-presentation=screen] .project-links a{background:#eaf0fa;border-color:#cbd8ec}
dialog[data-presentation=screen] .content-note{color:#7b8390!important;border-color:#dce1e8}
dialog[data-presentation=screen].computer-maximized{inset:12px;width:calc(100vw - 24px);height:calc(100dvh - 24px)}
@media(max-width:760px){dialog[data-presentation=screen]{inset:112px 8px 8px;width:calc(100vw - 16px);height:calc(100dvh - 120px);padding:0;border-width:4px}dialog[data-presentation=screen] .detail-document{padding:20px 16px}.computer-titlebar{font-size:11px;padding-left:12px}.computer-toolbar{padding:8px 12px;gap:8px}dialog[data-presentation=screen] h2{font-size:23px}}

.window-size-icon{display:block;width:12px;height:12px;position:relative;margin:auto}
.window-size-icon::before{content:'';position:absolute;inset:1px;border:1.4px solid currentColor;border-radius:1px}
#computer-maximize[aria-pressed=true] .window-size-icon::before{inset:0 0 4px 4px}
#computer-maximize[aria-pressed=true] .window-size-icon::after{content:'';position:absolute;inset:4px 4px 0 0;border:1.4px solid currentColor;background:#edf0f4;border-radius:1px}



.case-lead{font-size:22px;font-weight:600;color:#283b52}.case-context{margin:24px 0;padding:18px 20px;background:#f1f4f8;border-radius:12px}.case-audience{font-size:13px;color:#5e6978}.case-journey{padding:0;list-style:none;display:grid;gap:14px}.case-journey li{display:flex;gap:14px;align-items:flex-start}.case-step{font-size:22px;color:#6486af;line-height:1.4;font-variant-numeric:tabular-nums}.case-journey p{margin:4px 0 0}.case-features{border-top:1px solid #dde3eb;border-bottom:1px solid #dde3eb;padding:16px 0;margin:24px 0}.case-features summary{cursor:pointer;font-weight:600;color:#344e6b}.case-boundary{margin-top:24px}.case-boundary p{font-size:14px;color:#66717d}

#project-gallery{width:min(1080px,calc(100vw - 32px));height:min(900px,calc(100dvh - 32px));max-width:none;max-height:none;inset:0;margin:auto;padding:0;border:1px solid #cbd3dd;border-radius:14px;background:#f5f7fa;color:#28323f;overflow:hidden;box-shadow:0 24px 90px #10182455}
#project-gallery[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
#project-gallery::backdrop{background:#17212a99}
#project-gallery header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#eaf0f6;border-bottom:1px solid #d8e0e9}
#project-gallery button{min-height:44px;min-width:44px;border:1px solid #cbd5e1;border-radius:8px;background:white;color:#334c68;padding:8px 14px;cursor:pointer;font:inherit}
#project-gallery button:disabled{opacity:.4;cursor:default}
#project-gallery button:focus-visible{outline:2px solid #326fbc;outline-offset:2px}
#project-gallery .gallery-close{font-size:24px;border:0;background:transparent;padding:0}
.gallery-count{font-size:13px;font-weight:400;margin-left:12px;color:#627185}
#project-gallery .gallery-image{overflow:auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px;overscroll-behavior:contain}
#project-gallery .gallery-image img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
#project-gallery .gallery-image.expanded{display:block}
#project-gallery .gallery-image.expanded img{max-width:none;max-height:none}
#project-gallery footer{padding:12px 18px;border-top:1px solid #d8e0e9;background:#fff}
#project-gallery .gallery-caption{font-size:13px;line-height:1.55;margin:0 0 10px;max-height:100px;overflow:auto}
.gallery-actions{display:flex;justify-content:center;gap:12px}
#project-gallery small{display:block;text-align:center;color:#708094;margin-top:8px;font-size:11px}
@media(max-width:600px){#project-gallery{width:100vw;height:100dvh;border:0;border-radius:0}#project-gallery footer{padding:10px 12px max(10px,env(safe-area-inset-bottom))}#project-gallery .gallery-image{padding:8px}.gallery-actions{gap:8px}#project-gallery .gallery-actions button{flex:1;font-size:13px;padding:8px}.gallery-count{margin-left:6px}}

.site-filing{position:fixed;bottom:0;left:0;right:0;z-index:11;display:flex;justify-content:center;align-items:center;gap:12px;min-height:30px;padding:6px 10px max(6px,env(safe-area-inset-bottom));background:#f7f5efed;color:#4b514b;font-size:12px;line-height:1.5}.site-filing a{text-decoration:underline;text-underline-offset:3px}#area-hud{bottom:max(46px,calc(env(safe-area-inset-bottom) + 40px))}#object-tip{bottom:46px}
