/* The camera sits at the centre. Whole, live content surfaces surround it. */
.curated-lab .spatial-viewport{--sphere-styles:ready}
.sphere-hud,.sphere-drag-handle{display:none}
.sphere-scrollport{display:contents}
.sphere-scroll-range{display:none}
.sphere-face,.sphere-realm{display:contents}
.sphere-glass{display:none}
.sphere-return{position:fixed;top:72px;left:5vw;z-index:85;display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border:1px solid #86b6c455;border-radius:8px;background:#0b1828;color:#b5ebdf;font-size:11px}
.sphere-return>span:first-child{font-size:20px}
.sphere-return:hover{border-color:#a0eedb}
/* The authored reading layout is the failure fallback. Keep it out of the
   first paint while the sphere initializes, then reveal it if JS never does. */
.has-script body.curated-lab:not(.lab-ready) main{visibility:hidden;animation:lab-boot-fallback 0s 4s forwards}
@keyframes lab-boot-fallback{to{visibility:visible}}
.sphere-portal-content{display:none}
.sphere-spatial .sphere-portal-content{display:flex;position:absolute;left:50%;top:50%;width:var(--sphere-content-width);height:var(--sphere-content-height);align-items:center;justify-content:center;flex-direction:column;gap:24px;text-align:center;color:#a7e5dc;backface-visibility:hidden}
.sphere-portal-label{font:10px var(--delta-font-mono);letter-spacing:.14em;text-transform:uppercase}
.sphere-portal-link{display:grid;place-items:center;gap:18px;min-height:230px;min-width:230px;padding:32px;font:500 30px var(--delta-font-display);border:1px solid #93c5cb60;border-radius:50%;background:#0c192688}
.sphere-portal-link>span:first-child{font-size:70px;color:#a0eedb}
.sphere-portal-link>span:last-child{font:12px var(--delta-font-mono);color:#adbad4}
.lab-family-map{display:grid;gap:2px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.lab-family-map a{display:flex;gap:13px;align-items:center;min-height:44px;font-size:12px;color:#b6c4de}
.lab-family-map a>span{font:9px var(--delta-font-mono);color:#83c5c7}
.lab-family-map a[aria-current]{color:#abf1df}

body.sphere-spatial{overflow:hidden;height:100dvh}
.sphere-spatial .sphere-scrollport{display:block;position:fixed;inset:0;z-index:1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;scrollbar-width:thin;scrollbar-color:#536989 #070c18;scrollbar-gutter:stable}
.sphere-spatial .sphere-scroll-range{display:block;height:0;pointer-events:none}
.sphere-spatial .spatial-viewport{
    /* Clip does not create a scroll container. Hidden overflow lets native
       focus move the world away from its perspective eye and opens seams. */
    position:sticky;inset:auto;top:0;width:100%;height:100dvh;padding:0;border-radius:0;overflow:visible;overflow:clip;
    perspective-origin:50% 50%;touch-action:pan-y;outline:none;user-select:none;
}
.sphere-spatial .spatial-viewport img{-webkit-user-drag:none}
.sphere-spatial .spatial-world{
    position:absolute;left:50%;top:50%;width:0;height:0;display:block;
    transform-style:preserve-3d;transform-origin:0 0;transition:none;
    will-change:auto;gap:0;z-index:1;
}
.sphere-spatial .sphere-face{
    position:absolute;left:0;top:0;display:block;
    width:var(--sphere-card-width);height:var(--sphere-card-height);
    transform-style:preserve-3d;backface-visibility:hidden;
}
.sphere-spatial .sphere-realm{display:block;position:absolute;left:0;top:0;transform-style:preserve-3d}
.sphere-spatial .sphere-face[data-sphere-culled],.sphere-spatial .sphere-face[data-sphere-culled] *{visibility:hidden!important}
.sphere-spatial .spatial-cell{
    position:absolute;left:50%;top:50%;right:auto;bottom:auto;display:none;min-height:0;
    height:var(--sphere-content-height);width:var(--sphere-content-width);margin:0;
    visibility:visible;border:0;border-radius:14px;transform-origin:50% 50%;
    overflow:visible;transform-style:preserve-3d;
    touch-action:pan-y;
    background:transparent;box-shadow:none;backface-visibility:hidden;
}
.sphere-spatial .lab-project-magicos{background:transparent!important}
/* Fade the view outside the 3D scene. Per-leaf opacity flattens intersecting
   tangent surfaces and exposes raster seams during the realm hand-off. */
.sphere-spatial .spatial-viewport::after{
    content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
    background:#070c18;opacity:calc(1 - var(--sphere-realm-opacity,1));
}
/* The portal opens first; the chamber then comes into view as one layer.
   A veil avoids opacity on individual 3D tangents, which would flatten them. */
.sphere-spatial .lab-arrival-veil{
    position:absolute;inset:0;z-index:2;pointer-events:none;
    background:var(--lab-shell-core,#080e1d);
    animation:lab-arrival-blend 1900ms ease-in-out both;
}
@keyframes lab-arrival-blend{0%,30%{opacity:1}100%{opacity:0}}
.sphere-spatial [data-sphere-curved-chain]{transform-style:preserve-3d;overflow:visible;filter:none;opacity:1;contain:none;isolation:auto;pointer-events:none}
/* Each semantic block is one paintable tangent. Its own transform supplies
   spherical perspective to the complete live subtree. Extra internal 3D
   contexts cause image seams in Chromium and missing glyphs/SVGs in Firefox. */
.sphere-spatial [data-sphere-curved-fragment]{transform-origin:50% 50%;backface-visibility:hidden;pointer-events:auto;transform-style:flat}
.sphere-spatial [data-sphere-curved-fragment]>*{transform-style:flat}
/* Decorative paint must never inherit the live tangent hit target. */
.sphere-spatial :is(.toy-proof-frame,.sphere-disclosure-word)[data-sphere-curved-fragment]{pointer-events:none}
/* Only the actual bitmap leaf owns its rounded clip. Card cropping and
   interactive toy clips stay authored within their tangent paint unit. */
.sphere-spatial :is(.project-detail-art>.project-image[data-sphere-curved-fragment],.lab-gallery[data-sphere-curved-fragment] .gallery-frame picture,.lab-app-capture[data-sphere-curved-fragment] picture){overflow:visible;transform-style:flat}
.sphere-spatial :is(.project-detail-art>.project-image[data-sphere-curved-fragment],.lab-gallery[data-sphere-curved-fragment] .gallery-frame picture,.lab-app-capture[data-sphere-curved-fragment] picture)>img{border-radius:inherit;clip-path:inset(0 round 8px)}
.sphere-spatial .lab-chapter[data-sphere-curved-chain]{border-color:transparent}
.sphere-spatial .lab-notes>article[data-sphere-curved-chain]{border-top-color:transparent}
.sphere-spatial :is(.lab-proof,.lab-boundary,.process-details details,.lab-scope section,.gallery-controls,.lab-app-capture .browser-bar)[data-sphere-curved-chain]{background:transparent;border-color:transparent;box-shadow:none;overflow:visible}
.sphere-spatial .lab-proof[data-sphere-curved-chain]{pointer-events:auto}
.sphere-spatial :is(.lab-boundary,.process-details) summary[data-sphere-curved-chain]{pointer-events:auto}
.sphere-spatial .lab-process .flow-steps::before,.sphere-spatial .lab-gallery::before{display:none}
.sphere-spatial :is(.lab-gallery .gallery-frame picture,.lab-app-capture picture)[data-sphere-curved-fragment]{border-color:transparent;box-shadow:none;background:transparent}
.sphere-spatial .project-detail-art .project-image{box-shadow:none}
.sphere-spatial .sphere-mesh{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.sphere-spatial .sphere-disclosure-copy{position:absolute;inset:0;transform-style:preserve-3d;overflow:visible;pointer-events:none}
.sphere-spatial .sphere-disclosure-word{position:absolute;display:block;white-space:nowrap;line-height:normal;pointer-events:none}
.sphere-spatial .project-card[data-sphere-curved-chain]{background:transparent;border-color:transparent;box-shadow:none;overflow:visible}
.sphere-spatial .project-card-art[data-sphere-curved-fragment]{position:relative;overflow:hidden;pointer-events:auto;border-radius:8px 8px 0 0;background:transparent!important}
.sphere-spatial .project-card-art img{display:block;width:100%;height:100%;object-fit:cover}
.sphere-spatial img.sphere-textured-image{visibility:hidden}
.sphere-spatial .project-detail-art .project-image:has(img.sphere-textured-image){background:transparent;border-color:transparent}
.sphere-spatial .project-card-copy[data-sphere-curved-chain]{overflow:visible}
.sphere-spatial .project-card-copy>h3,.sphere-spatial .project-card-copy>p{width:max-content;max-width:100%}
/* Inline flex boxes in a preserved 3D chain can report a different rectangle
   from their painted native hit target in Chromium. Block-level flex retains
   the same compact link and tangent while aligning geometry and pointer use. */
.sphere-spatial .project-card-copy>.text-link{display:flex;width:max-content}
.sphere-spatial .spatial-cell.sphere-room-visible{display:block;visibility:visible}
.sphere-spatial .sphere-face-selected .spatial-cell{border-top-color:#a0eedb85}
.sphere-spatial .sphere-face-aimed :is(.section-heading h2,.project-detail h2,.lab-scene-copy h2,.lab-app-heading h2){text-shadow:0 0 25px #91dfdf2a}
.sphere-spatial :is(.section-heading,.project-detail,.lab-scene-copy,.lab-app-heading) :is(h1,h2) .gradient-text,
.sphere-spatial .project-detail h2>span:last-child{background:none;color:inherit}
.sphere-spatial :is(.section-heading,.project-detail,.lab-scene-copy,.lab-app-heading) :is(h1,h2) .gradient-text .lab-curve-glyph,
.sphere-spatial .project-detail h2>span:last-child .lab-curve-glyph{color:var(--sphere-glyph-color)}
.sphere-spatial .sphere-face-aimed :is(.section-heading,.project-detail,.lab-scene-copy,.lab-app-heading) :is(h1,h2){text-shadow:0 0 22px #37defa32,0 0 45px #b134dc18}
.sphere-spatial :is(.section-heading,.project-detail-copy)>:is(h1,h2)>span{width:max-content;max-width:100%}
.sphere-spatial :is(.lab-curve-run,.lab-curve-word,.lab-curve-glyph){display:inline-block}
.sphere-spatial .lab-notes .note-number[data-sphere-curved-fragment]{display:inline-block}
.sphere-spatial .lab-curve-word{white-space:nowrap}
.sphere-spatial .lab-art-label>span{display:inline-flex;align-items:center}
.sphere-spatial .lab-art-label>span:first-child{display:inline-block}
.sphere-spatial .sphere-face-aimed :is(h1,h2)>span[data-sphere-curved-fragment]{text-shadow:none}
.sphere-spatial :is(h1,h2)[tabindex="-1"]:focus-visible{outline:none}
.sphere-spatial .sphere-face-aimed .lab-coordinate>b{color:#c5f8ee;text-shadow:0 0 14px #97e3dc50}
.sphere-spatial .spatial-cell:focus-within{border-color:#a0eedb85}
.sphere-spatial .cell-wrap{width:100%;min-height:100%;height:auto}
.sphere-spatial .lab-chapter{padding-top:0}
.sphere-spatial .lab-project .project-detail h2{font-size:clamp(36px,3.5vw,58px)}
.sphere-spatial .project-detail h2,.sphere-spatial .project-detail h2>span{width:max-content;max-width:100%}
.sphere-spatial .project-detail h2{width:min(100%,520px)}
.sphere-spatial .project-detail-copy > :is(.eyebrow,.actions){max-width:520px}
.sphere-spatial .lab-project .project-detail .section-copy{font-size:14px}
.sphere-spatial .lab-project-grid{max-width:1040px}
.sphere-spatial .sphere-hud{
    display:flex;position:absolute;top:78px;left:50%;transform:translateX(-50%);
    align-items:center;gap:20px;white-space:nowrap;z-index:3;pointer-events:none;
    color:#a8c4d6;font:9px/1.5 var(--delta-font-mono);letter-spacing:.14em;text-transform:uppercase;
}
.sphere-hud>span:first-child{color:#94eddd}.sphere-hud>i{font-style:normal;color:#64798f;letter-spacing:.07em}
.sphere-spatial .sphere-drag-handle{
    position:absolute;bottom:73px;left:50%;transform:translateX(-50%);z-index:3;
    display:flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;
    font:9px/1.5 var(--delta-font-mono);letter-spacing:.05em;color:#97b1c8;
    touch-action:none;cursor:grab;user-select:none;border-radius:24px;
}
.sphere-drag-handle>span{font-size:22px;color:#b8dce0}.sphere-drag-handle:hover{background:#0a1525db;color:#d6eff3}
.sphere-drag-handle:focus-visible{outline:2px solid #a0eedb;outline-offset:0}
.sphere-spatial .view-controls{display:flex;background:#101a29ed;border-color:#9ab1cb55}
.sphere-spatial .view-map{z-index:90}
.sphere-spatial .site-header::before{position:fixed;inset:0 0 auto;height:100px;background:linear-gradient(#080e19fa 20%,#080e1900)}
.sphere-spatial .ambient-field{opacity:.6}
.sphere-spatial{--lab-shell-core:#101b2d;--lab-shell-mid:#172846;--lab-shell-rim:#282040;--lab-card-fill:#141828;--lab-card-line:#44d6e27d;--lab-signal:#3df4ed;background:#070b1b;transition:background-color 700ms}
.sphere-spatial .static-field{background:radial-gradient(ellipse at 24% 46%,#05eaf72b,transparent 48%),radial-gradient(ellipse at 83% 57%,#e642e62c,transparent 52%),repeating-linear-gradient(90deg,transparent 0 118px,#47b9d512 119px 120px),repeating-linear-gradient(0deg,transparent 0 118px,#9c60e814 119px 120px),#080e1d;opacity:.85}
.sphere-spatial .spatial-viewport::before{content:"";position:absolute;inset:7% 14%;border:1px solid #65e5ec16;border-radius:50%;transform:scaleX(1.35);box-shadow:0 0 0 100px #67ccef04,0 0 0 200px #a56be806;pointer-events:none;z-index:0}
.sphere-spatial .sphere-hud::after{content:"01 / 02";color:#44eced;border-left:1px solid #77dce855;padding-left:14px;letter-spacing:.17em}
.sphere-spatial[data-lab-depth="inner"]{--lab-shell-core:#0b2024;--lab-shell-mid:#143a37;--lab-shell-rim:#17403b;--lab-card-fill:#102126;--lab-card-line:#86f4d783;--lab-signal:#8af9db;background:#05141b}
.sphere-spatial[data-lab-depth="inner"] .static-field{background:radial-gradient(ellipse at 50% 45%,#19e4c425,transparent 45%),radial-gradient(ellipse at 86% 22%,#5b9ef325,transparent 54%),repeating-radial-gradient(circle at 50% 50%,transparent 0 75px,#5ef0d410 76px 77px),#06131c;opacity:.95}
.sphere-spatial[data-lab-depth="inner"] .spatial-viewport::before{border-color:#7cffdb28;box-shadow:0 0 0 95px #47eabb05,0 0 0 190px #47eabb06}
.sphere-spatial[data-lab-depth="inner"] .sphere-hud::after{content:"02 / 02";color:#9fffdc}
.sphere-spatial[data-lab-depth="inner"] .sphere-hud>span:first-child{color:#8ff9d7}
.sphere-spatial[data-lab-region="games"]{--lab-shell-core:#21142f;--lab-shell-mid:#352044;--lab-shell-rim:#4a1c46;--lab-card-fill:#211628;--lab-card-line:#ee74d39c;--lab-signal:#fa65d7;background:#160d21}
.sphere-spatial[data-lab-region="games"] .static-field{background:radial-gradient(ellipse at 35% 50%,#9d3af447,transparent 52%),radial-gradient(ellipse at 82% 45%,#f03eaa2c,transparent 55%),repeating-radial-gradient(circle at 50% 50%,transparent 0 76px,#e361d30d 77px 78px),#120b20}
.sphere-spatial[data-lab-region="business"]{--lab-shell-core:#0e2927;--lab-shell-mid:#184037;--lab-shell-rim:#164b3e;--lab-card-fill:#102224;--lab-card-line:#67ecc29c;--lab-signal:#6fffc4;background:#0c1d1b}
.sphere-spatial[data-lab-region="positron"]{--lab-shell-core:#17162e;--lab-shell-mid:#29213d;--lab-shell-rim:#392a59;--lab-card-fill:#181a2c;--lab-card-line:#b395fc96;--lab-signal:#b79aff;background:#111426}
.sphere-spatial[data-lab-region="magicos"]{--lab-shell-core:#101d36;--lab-shell-mid:#1b3153;--lab-shell-rim:#273f67;--lab-card-fill:#121b2d;--lab-card-line:#82b3ff9c;--lab-signal:#85b9ff;background:#0b1427}
.sphere-spatial[data-lab-region="research"]{--lab-shell-core:#20132e;--lab-shell-mid:#322049;--lab-shell-rim:#45306a;--lab-card-fill:#1c172b;--lab-card-line:#d394f99c;--lab-signal:#d89bff;background:#160f23}
.sphere-spatial[data-lab-depth="inner"] .sphere-glass-panel{stroke:var(--lab-card-line)}
.sphere-spatial[data-lab-depth="inner"] .sphere-drag-handle>span{color:var(--lab-signal)}
.sphere-spatial[data-lab-depth="inner"] .sphere-return{border-color:var(--lab-card-line);color:var(--lab-signal)}
.sphere-spatial .sphere-hud{color:var(--lab-signal)}
.sphere-spatial .spatial-cell [data-toy]{touch-action:pan-y}
.sphere-spatial .spatial-cell [data-toy="harmony"]{touch-action:auto}
.sphere-dragging,.sphere-dragging *{user-select:none!important;cursor:grabbing!important}

/* The chamber supplies depth; the content needs a clear reading hierarchy. */
.sphere-spatial .spatial-cell{color:#f8fbff}
.sphere-spatial .spatial-cell :is(.section-copy,.lab-audience,.lab-notes p,.project-card-copy p:not(.descriptor),.process-details p,.lab-scene-notes li,.lab-scope li,.lab-prompt){color:#f0f5fc;font-weight:500}
.sphere-spatial .spatial-cell :is(.project-card-copy .descriptor,.art-caption,.lab-related>span,.lab-art-label,.lab-coordinate,.lab-chapter nav a){color:#bdcde2}
.sphere-spatial .spatial-cell :is(.eyebrow,.lab-audience>span,.note-number){color:#8ef5ed}
.sphere-spatial .spatial-cell :is(.text-link,.project-card-copy .text-link){color:#aaf7f3}
.sphere-spatial .lab-notes{margin-top:12px}
.sphere-spatial .lab-notes p{max-width:calc(100% - 18px)}
.sphere-spatial .process-details details p{max-width:calc(100% - 80px)}
.sphere-spatial .process-details summary :is(small,strong){color:#f2f8ff}
.sphere-spatial .process-details summary small{color:#a7f5f0;font-size:10px}
.sphere-spatial .process-details details p{font-size:14px;line-height:1.7;padding-bottom:18px}
.sphere-spatial .lab-boundary{color:#e9f5fc}
.sphere-spatial .lab-boundary p{color:#e8f1fa;font-size:13px;padding:6px clamp(24px,2.5vw,32px) 20px clamp(30px,5vw,64px)}
.sphere-spatial .flow-go .toy-pulse-controls>span,
.sphere-spatial .flow-go>[data-toy-status]{color:#e0f2f7;font-size:10px}
.sphere-spatial .flow-go .toy-pulse-controls button{color:#c7fffa;font-size:11px}
.sphere-spatial .lab-scope section{padding-left:50px;padding-right:35px}
.sphere-spatial .sphere-face-aimed :is(.section-heading h2,.project-detail h2,.lab-scene-copy h2,.lab-app-heading h2),
.sphere-spatial .sphere-face-aimed .lab-coordinate>b{text-shadow:none}

@media(min-width:1101px) and (max-width:1500px){
    body.sphere-spatial .lab-room>.cell-wrap{padding-left:48px;padding-right:48px}
    body.sphere-spatial .lab-chapter{left:48px;right:48px}
    .sphere-return{left:12px;top:70px;min-height:40px;padding:6px 8px;font-size:9px}
}

@media(min-width:1101px){
    /* Curved edge links rise above their native layout box. Reserve room
       below the fixed header while keeping the chapter and copy together. */
    .sphere-spatial .lab-room>.cell-wrap{padding-left:30px;padding-right:30px;padding-top:110px;padding-bottom:20px;gap:20px}
    .sphere-spatial .lab-chapter{left:30px;right:30px;top:56px;padding-bottom:12px}
    .sphere-spatial .lab-chapter nav a{font-size:12px;min-height:36px}
    .sphere-spatial .lab-coordinate{font-size:10px}
    .sphere-spatial .lab-project .project-detail-art .project-image img{max-height:min(29svh,300px)}
    .sphere-spatial .lab-project .project-detail{gap:5%}
    .sphere-spatial .lab-overview .project-card-art{height:clamp(125px,18svh,185px)}
    .sphere-spatial .lab-overview .section-heading :is(h1,h2){font-size:clamp(40px,5.3svh,62px)}
    .sphere-spatial .lab-overview .section-copy{font-size:16px}
    .sphere-spatial .lab-project-grid{max-width:1180px}
    .sphere-spatial .lab-overview .project-card-copy{padding-left:32px}
    .sphere-spatial .lab-overview .project-card-copy>p:not(.descriptor){margin-left:10px}
    .sphere-spatial .lab-overview .project-card-copy h3{font-size:28px}
    .sphere-spatial .lab-overview .project-card-copy>p{font-size:14px;line-height:1.7}
    .sphere-spatial .lab-overview .project-card-copy>.descriptor{font-size:12px}
    .sphere-spatial .lab-project .project-detail h2{font-size:clamp(44px,4vw,62px)}
    .sphere-spatial .lab-project .project-detail .section-copy{font-size:16px;line-height:1.7}
    .sphere-spatial .lab-audience{font-size:13px;line-height:1.7}
    .sphere-spatial .lab-notes p{font-size:14px;line-height:1.7}
    .sphere-spatial .lab-notes h3{font-size:21px}
    .sphere-spatial .text-link{font-size:14px}
    .sphere-spatial .delta-btn{font-size:13px}
    .sphere-spatial .lab-boundary summary{font-size:13px}
}
@media(max-height:760px) and (min-width:701px){
    .sphere-spatial .sphere-hud{top:65px;font-size:8px}
    .sphere-spatial .sphere-drag-handle{bottom:53px;min-height:28px;font-size:8px}
    .sphere-spatial .lab-room>.cell-wrap{padding-top:76px;gap:14px}
    .sphere-spatial .lab-overview .project-card-art{height:115px}
    .sphere-spatial .lab-overview .project-card-copy{padding:12px 18px}
}
@media(min-width:701px) and (max-height:940px){
    .sphere-spatial #magicos>.cell-wrap,
    .sphere-spatial #lab-research>.cell-wrap{gap:12px;padding-bottom:12px}
    .sphere-spatial #magicos .os-constellation{max-width:clamp(225px,31svh,290px)}
    .sphere-spatial #lab-research .project-card-art{height:clamp(115px,15.5svh,145px)}
    .sphere-spatial #lab-research .section-heading h2{font-size:clamp(38px,4.8svh,52px)}
    .sphere-spatial #lab-research .section-copy{font-size:15px;line-height:1.6}
}
@media(min-width:1101px) and (max-height:940px){
    .sphere-spatial .lab-room>.cell-wrap{gap:10px;padding-bottom:8px}
    .sphere-spatial .lab-project .project-detail h2{font-size:clamp(38px,3.6vw,52px)}
    .sphere-spatial .lab-project .project-detail .section-copy{font-size:14px;line-height:1.5;margin-top:10px}
    .sphere-spatial .lab-project.family-work .project-detail-art .project-image img{max-height:26.5svh}
    .sphere-spatial .lab-audience{font-size:12px;line-height:1.5;margin:8px 0 10px}
    .sphere-spatial .lab-notes article{padding-top:8px}
    .sphere-spatial .lab-notes h3{font-size:18px;line-height:1.2;margin:5px 0}
    .sphere-spatial .lab-notes p{font-size:14px;line-height:1.5}
    .sphere-spatial .lab-overview .project-card-copy{padding:12px 20px}
    .sphere-spatial .lab-overview .project-card-copy h3{font-size:25px}
    .sphere-spatial .lab-overview .project-card-copy>p{font-size:13px;line-height:1.5}
    .sphere-spatial .lab-process-room .process-details summary{min-height:54px;padding:9px 16px}
}
@media(min-width:1101px) and (min-height:821px) and (max-height:940px){
    .sphere-spatial #lab-business .project-card-art{height:clamp(120px,16.5svh,155px)}
}
@media(min-width:1101px) and (max-height:820px){
    .sphere-spatial .lab-room>.cell-wrap{gap:8px;padding-top:68px;padding-bottom:8px}
    .sphere-spatial .lab-overview .section-heading{row-gap:14px}
    .sphere-spatial .lab-overview .project-card-art{height:120px}
    .sphere-spatial .lab-overview .project-card-copy{padding:10px 16px}
    .sphere-spatial .lab-project .project-detail h2{font-size:clamp(36px,3.4vw,44px)}
    .sphere-spatial .lab-project.family-work .project-detail .section-copy{line-height:1.4;margin-top:6px}
    .sphere-spatial .lab-project.family-work .lab-audience{margin:4px 0 6px}
    .sphere-spatial .lab-project.family-work>.cell-wrap{gap:6px;padding-bottom:2px}
    .sphere-spatial .lab-project.family-work .project-detail-art .project-image img{max-height:26svh}
    .sphere-spatial .lab-project.family-work .lab-proof{padding-block:4px}
    .sphere-spatial .lab-notes h3{font-size:17px}
    .sphere-spatial .lab-notes p{font-size:14px;line-height:1.45}
    .sphere-spatial .lab-app-capture img{max-height:31svh}
    .sphere-spatial .lab-process-room .section-copy{margin-top:10px}
    .sphere-spatial .lab-process-room .process-details{gap:6px}
    .sphere-spatial .lab-process-room .process-details details p{line-height:1.55}
    .sphere-spatial #ai-systems>.cell-wrap{gap:6px;padding-bottom:4px}
    .sphere-spatial #ai-systems .research-toy{height:274px}
    .sphere-spatial #ai-systems .research-toy-ui{grid-template-rows:42px 156px 32px 44px}
    .sphere-spatial #ai-systems .harmony-board{width:min(100%,195px);height:156px}
    .sphere-spatial #pqc .project-detail-art>.soul-container{width:205px;height:205px}
}
@media(min-width:1101px) and (max-height:800px){
    /* Give GO's last row room above the chamber rim and fixed controls. */
    .sphere-spatial .lab-project-go .project-detail-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:start}
    .sphere-spatial .lab-project-go .project-detail-copy>:is(.eyebrow,h2,.status,.section-copy){grid-column:1/-1}
    .sphere-spatial .lab-project-go .project-detail-copy .eyebrow{margin-bottom:8px}
    .sphere-spatial .lab-project-go .project-detail-copy .status{margin-top:4px}
    .sphere-spatial .lab-project-go .project-detail-copy .section-copy{margin-top:6px}
    .sphere-spatial .lab-project-go .lab-audience{grid-column:1;margin:6px 0 0}
    .sphere-spatial .lab-project-go .actions{grid-column:2;align-self:end}
    .sphere-spatial .lab-project-go .project-detail-art .project-image img{max-height:clamp(160px,22svh,180px)}
    .sphere-spatial .lab-project-go .lab-notes{margin-top:6px}
}
@media(max-width:700px){
    .sphere-return{top:66px;left:16px;font-size:10px;padding:6px 10px;min-height:38px}
    .sphere-spatial .sphere-hud{top:70px;left:auto;right:14px;transform:none;max-width:calc(100vw - 154px);overflow:hidden;justify-content:flex-end;gap:7px;font-size:7px;letter-spacing:.1em}
    .sphere-hud>i{display:none}
    .sphere-spatial .spatial-cell{border-radius:14px}
    .sphere-spatial .lab-room>.cell-wrap{padding:20px 20px 32px;gap:25px}
    .sphere-spatial .lab-project-grid{grid-template-columns:minmax(0,1fr);min-width:0}
    .sphere-spatial .lab-project-grid>.project-card{min-width:0;max-width:100%}
    .sphere-spatial .project-card-copy>h3,.sphere-spatial .project-card-copy>p{width:auto;min-width:0;overflow-wrap:break-word}
    .sphere-spatial .lab-chapter{padding-top:0;margin:0}
    .sphere-spatial .sphere-drag-handle{bottom:63px;font-size:8px;min-height:44px;padding-inline:16px;background:#0b1523e8;border:1px solid #5e799632}
    .sphere-spatial .lab-project .project-detail h2{font-size:36px}
    .sphere-spatial .lab-overview .lab-symbol{display:none}
    .sphere-spatial .lab-overview .section-heading h2{font-size:34px}
    .sphere-spatial .lab-overview .project-card-art{height:170px}
    .sphere-spatial .lab-project .project-detail-art .project-image img{max-height:none}
}
@media(prefers-reduced-motion:reduce){.sphere-drag-handle{display:none!important}.lab-arrival-veil{animation:none!important;opacity:0}}
@media(max-height:480px) and (min-width:500px){
    /* Keep the native drag affordance out of the short landscape reading
       area. Its accessible name remains on the compact edge control. */
    .sphere-spatial .sphere-drag-handle{left:auto;right:14px;bottom:72px;transform:none;width:42px;min-width:42px;min-height:42px;padding:0;gap:0;font-size:0;border-radius:50%}
}
@media(forced-colors:active){.sphere-spatial .spatial-cell{border:1px solid CanvasText}}
