@import url("tokens.css");

*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;background:var(--canvas);scrollbar-color:var(--brand) rgba(255,255,255,.08);scrollbar-width:thin}
body{margin:0;background:var(--canvas);color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased}
body.is-deck{height:100vh;height:100dvh;overflow:hidden}
button,input,a{font:inherit}
button,a{color:inherit}
button{border:0}
a{text-decoration:none}
img,video{display:block;max-width:100%}
button:not(:disabled),a[href]{cursor:pointer}
:focus-visible{outline:2px solid var(--brand);outline-offset:4px;box-shadow:0 0 0 4px rgba(169,104,242,.26)}
::selection{background:var(--brand);color:#100519}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.display{font-family:var(--font-display)}
.eyebrow{margin:0 0 14px;font:400 var(--fs-eye)/1.2 var(--font-display);color:var(--project-accent,var(--brand));text-wrap:balance}
.title{margin:0;font:700 var(--fs-panel)/1.08 var(--font-display);letter-spacing:-.012em;text-wrap:balance}
.hero-title{margin:0;font:700 var(--fs-hero)/1 var(--font-display);letter-spacing:-.014em;text-wrap:balance}
.copy{margin:0;color:var(--text-60);font-size:var(--fs-body);line-height:1.4}
.copy+.copy{margin-top:1em}
.copy strong{color:var(--text);font-weight:700}
.micro{font:400 var(--fs-micro)/1.3 var(--font-display);color:var(--text-45)}
.number{font:400 var(--fs-meta)/1 var(--font-display);color:var(--project-accent,var(--brand))}

.app-shell{position:relative;isolation:isolate;min-height:100vh;min-height:100dvh;background:#121114}
.app-shell::before{content:"";position:fixed;inset:-50%;z-index:80;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.92'/%3E%3C/svg%3E");animation:grainShift 1s steps(2) infinite}
@keyframes grainShift{0%{transform:translate3d(0,0,0)}25%{transform:translate3d(2%,-1%,0)}50%{transform:translate3d(-1%,2%,0)}75%{transform:translate3d(1%,1%,0)}100%{transform:translate3d(0,0,0)}}
.deck{display:flex;width:100vw;height:100vh;height:100dvh;overflow-x:auto;overflow-y:hidden;overscroll-behavior:none;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}
.deck::-webkit-scrollbar{display:none}
.panel{position:relative;flex:0 0 100vw;width:100vw;height:100vh;height:100dvh;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;background:var(--canvas)}
.panel-inner{position:relative;width:min(100%,1920px);height:100%;margin-inline:auto;padding:clamp(84px,8vh,112px) var(--editorial-inset) clamp(72px,7vh,92px);display:flex;flex-direction:column;justify-content:center}
.panel-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:center;min-height:0}
.panel-copy{max-width:650px}
.panel-copy>.copy{margin-top:24px}
.panel-media{min-width:0;min-height:0;display:grid;place-items:center}
.panel-media>img,.panel-media>video{max-height:min(72vh,760px);width:100%;object-fit:contain}

.site-logo{position:fixed;left:var(--edge);top:clamp(20px,4.45vh,48px);z-index:84;width:clamp(112px,8.5vw,164px);height:30px;object-fit:contain;object-position:left center}
.escape{position:fixed;left:var(--edge);top:clamp(20px,3vh,32px);z-index:86;min-width:60px;height:60px;padding:0 10px;border:1px solid rgba(255,255,255,.55);border-radius:var(--radius-control);background:rgba(0,0,0,.18);font:400 16px/1 var(--font-display);display:grid;place-items:center;transition:background var(--motion-fast),transform var(--motion-fast)}
.escape:hover{background:rgba(255,255,255,.1);transform:translateY(-1px)}
.case-wordmark{display:none}
.menu-trigger{position:fixed;right:var(--edge);top:clamp(20px,4.45vh,48px);z-index:90;width:64px;height:64px;padding:16px;border-radius:50%;background:rgba(0,0,0,.6);box-shadow:0 8px 24px rgba(0,0,0,.3);transition:transform var(--motion-fast),background var(--motion-fast)}
.menu-trigger:hover{background:#000;transform:scale(1.04)}
.menu-trigger img{width:100%;height:100%;object-fit:contain}

.deck-progress{position:fixed;z-index:88;inset:0 auto auto 0;width:var(--progress,14.285%);height:2px;background:var(--project-accent,var(--brand));transition:width var(--motion-standard) var(--ease)}
.deck-controls{position:fixed;z-index:82;left:50%;bottom:clamp(22px,4vh,46px);transform:translateX(-50%);display:flex;align-items:center;gap:18px}
.nav-arrow,.carousel-arrow{width:46px;height:46px;padding:13px;border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-control);background:rgba(0,0,0,.22);display:grid;place-items:center;transition:background var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast)}
.nav-arrow:hover,.carousel-arrow:hover{background:rgba(255,255,255,.1);border-color:#fff;transform:translateY(-1px)}
.nav-arrow:disabled,.carousel-arrow:disabled{opacity:.25;cursor:default;transform:none}
.nav-arrow img,.carousel-arrow img{width:100%;height:100%;object-fit:contain}
.deck-count{min-width:64px;text-align:center;font:400 12px/1 var(--font-display);color:var(--text-45)}
.section-rail{position:fixed;z-index:82;left:var(--edge);bottom:clamp(30px,4.5vh,50px);display:flex;align-items:center;gap:10px}
.rail-dot{display:flex;align-items:center;gap:8px;padding:8px 0;background:transparent;color:var(--text-45)}
.rail-dot::before{content:"";display:block;width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.24);transition:width var(--motion-standard),background var(--motion-standard),border-radius var(--motion-standard)}
.rail-dot[aria-current="true"]::before{width:28px;border-radius:999px;background:var(--project-accent,var(--brand))}
.rail-dot span{display:none;font:400 11px/1 var(--font-display)}
.keyboard-hint{position:fixed;z-index:82;right:calc(var(--edge) + 96px);bottom:clamp(30px,4.5vh,50px);display:flex;gap:8px;align-items:center;font:400 12px/1 var(--font-display);color:var(--text-45)}
.keyboard-hint[hidden]{display:none}
.keycap{min-width:28px;height:28px;padding:0 7px;border:1px solid rgba(255,255,255,.45);border-radius:var(--radius-control);display:grid;place-items:center;color:#fff}

.end-alert{position:fixed;z-index:98;right:0;bottom:0;width:min(540px,calc(100vw - 20px));min-height:210px;padding:70px 42px 30px 78px;border-radius:180px 0 0 0;background:#452584;color:#fff;text-align:left;font:400 16px/1.28 var(--font-body);transform:translate3d(calc(100% + 80px),0,0);transition:transform var(--motion-standard) var(--ease)}
.end-alert.is-visible{transform:translate3d(0,0,0)}
.end-alert span{display:block}.end-alert strong{display:block;margin-top:16px;font:700 24px/1 var(--font-display)}.end-alert kbd{display:inline-grid;place-items:center;min-width:54px;height:54px;margin:0 8px;border:1px solid currentColor;border-radius:4px;font:400 16px/1 var(--font-display)}
.app-shell.is-wiggling{animation:wiggle 420ms ease}
@keyframes wiggle{20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}

.meta-row{display:flex;flex-wrap:wrap;gap:clamp(28px,4.2vw,80px);margin-bottom:clamp(28px,6vh,64px);font:400 var(--fs-meta)/1.2 var(--font-display)}
.meta-item{display:grid;gap:4px}
.meta-item dt{color:var(--text-45);font-size:.72em}
.meta-item dd{margin:0;color:#fff}

.hero-panel{color:#fff}
.hero-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02) 0%,rgba(0,0,0,.14) 42%,rgba(0,0,0,.88) 100%);z-index:0;pointer-events:none}
.hero-panel .panel-inner{z-index:1;justify-content:center;padding-top:clamp(120px,12vh,150px);padding-bottom:clamp(120px,12vh,150px)}
.hero-panel .hero-copy{width:min(610px,48vw)}
.hero-panel.camera-hero .hero-copy{width:min(790px,58vw)}
.hero-panel .hero-copy>.copy{margin-top:18px;max-width:640px;color:rgba(255,255,255,.86)}
.hero-panel .meta-row{position:absolute;left:var(--editorial-inset);right:7.4vw;top:clamp(32px,5.1vh,56px);margin:0;justify-content:space-between;gap:24px}
.hero-panel .meta-item{display:flex;align-items:baseline;gap:12px}
.hero-panel .hero-nav-tip{margin-top:34px;font:400 16px/1.3 var(--font-display);color:rgba(255,255,255,.72)}
.hero-panel.onboarding-hero{background:radial-gradient(ellipse 74% 74% at 50% 50%,rgba(0,0,0,.2) 0%,#000 100%),var(--onboarding-hero)}
.hero-panel.onboarding-hero .hero-art{position:absolute;right:7.4vw;top:17.25vh;bottom:0;width:min(38.45vw,738px);display:flex;align-items:flex-end;justify-content:center;z-index:1}
.hero-panel.onboarding-hero .hero-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.hero-panel.camera-hero{background:#101010 url("../assets/camera/camera-hero-figma.webp") center/cover no-repeat}
.hero-panel.camera-hero::after{background:linear-gradient(90deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.18) 46%,rgba(0,0,0,.1) 100%),linear-gradient(180deg,transparent 45%,rgba(0,0,0,.62) 100%)}
.hero-panel.slice-hero{background:#9b4f27 url("../assets/home/Project Thumbnails/Hero BG.webp") center/cover no-repeat}
.hero-panel.slice-hero::after{background:linear-gradient(90deg,rgba(60,22,6,.18),rgba(0,0,0,0) 55%)}
.slice-hero-art{position:absolute;z-index:1;left:45.5%;top:16%;width:min(50vw,960px);height:70%;object-fit:contain}

.challenge-media{height:min(76vh,820px);border-radius:var(--radius-card);overflow:hidden;background:rgba(255,255,255,.04)}
.challenge-media img,.challenge-media video{width:100%;height:100%;object-fit:cover}
.challenge-statement{max-width:650px;margin:0;font:400 clamp(20px,1.35vw,26px)/1.32 var(--font-body);letter-spacing:0}
.challenge-subhead{margin-top:26px}
.challenge-output{display:grid;grid-template-columns:1fr;gap:18px;margin-top:16px}
.challenge-output h3{margin:0;font:700 20px/1.15 var(--font-display)}
.challenge-output p{margin:6px 0 0;color:var(--text-60);font-size:var(--fs-small);line-height:1.4}
.challenge-output span{color:var(--text-30)}
body[data-project="onboarding"] #challenge .panel-inner{justify-content:center;padding-top:96px}
body[data-project="onboarding"] #challenge .panel-grid{grid-template-columns:650px 370px;justify-content:center;align-items:center;gap:118px;width:min(100%,1160px);margin-inline:auto}
body[data-project="onboarding"] #challenge .challenge-media{width:370px;height:min(74vh,800px);justify-self:center;border-radius:36px;box-shadow:none}
.goal-list{display:grid;gap:14px;margin-top:20px}
.goal{display:grid;grid-template-columns:36px 1fr;gap:10px;padding-top:12px;border-top:1px solid var(--text-20)}
.goal:first-child{border-top:0}
.goal h3{margin:0;font:700 var(--fs-card)/1.2 var(--font-display)}
.goal p{margin:5px 0 0;color:var(--text-45);font-size:var(--fs-small);line-height:1.38}
.goal>p{margin:0;font-family:var(--font-display);font-size:14px;line-height:1.5}.goal>p strong{color:#fff}
body[data-project="onboarding"] #challenge .panel-copy>.eyebrow:first-child{margin-bottom:12px;color:#fff;font:700 20px/1.1 var(--font-display)}
body[data-project="onboarding"] #challenge .challenge-subhead{color:var(--onboarding-hero)}
body[data-project="onboarding"] #challenge .goal>.number{align-self:start;padding-top:2px;color:var(--onboarding-hero);font:400 20px/1 var(--font-display)}
body[data-project="onboarding"] .carousel-arrow{border-color:var(--onboarding-hero)}
body[data-project="camera"] #challenge .panel-inner{padding:90px 80px 70px}
body[data-project="camera"] #challenge .panel-grid{grid-template-columns:820px 404px;gap:110px;justify-content:center;align-items:center}
body[data-project="camera"] #challenge .panel-copy{max-width:none}
.camera-challenge-statement{margin:18px 0 0;color:#fff;font-size:30px;line-height:1.15}
.camera-challenge-statement strong{font-family:var(--font-display)}
body[data-project="camera"] #challenge .eyebrow{color:var(--text-45)}
.camera-goals-label{margin:68px 0 0;color:var(--text-45);font:400 20px/1 var(--font-display)}
body[data-project="camera"] #challenge .goal-list{gap:30px;margin-top:24px}
body[data-project="camera"] #challenge .goal{grid-template-columns:50px 1fr;gap:14px;padding:0;border:0}
body[data-project="camera"] #challenge .goal h3,body[data-project="camera"] #challenge .goal p{display:inline;font:400 20px/1.15 var(--font-display)}
body[data-project="camera"] #challenge .goal h3{color:#fff;font-weight:700}
body[data-project="camera"] #challenge .goal p{margin-left:9px;color:var(--text-45)}
body[data-project="camera"] #challenge .challenge-media{width:404px;height:860px;border-radius:40px}

.wash-frame{width:100%;height:100%;border:0;background:#fff}
.tabs{display:flex;gap:6px;width:max-content;padding:4px;border:1px solid var(--text-30);border-radius:999px;margin:22px 0;background:rgba(0,0,0,.2)}
.tabs button{min-height:38px;padding:0 20px;border-radius:999px;background:transparent;color:var(--text-60);font:400 12px/1 var(--font-display)}
.tabs button[aria-selected="true"]{background:#fff;color:#111}
.flow-frame{height:min(65vh,700px);width:100%;display:grid;place-items:center;overflow:hidden}
.flow-frame img{width:100%;height:100%;object-fit:contain}
#user-flow .panel-inner{justify-content:flex-start;padding:120px 80px 82px}
#user-flow .tabs{width:460px;margin:18px 0;padding:5px}
#user-flow .tabs button{flex:1;min-height:52px;padding-inline:28px;font-size:16px}
#user-flow .flow-frame{height:650px}
#user-flow .panel-inner>.eyebrow{margin:0;color:#fff;font:700 32px/1 var(--font-display)}
.live-flow-frame{display:block;overflow:auto hidden;padding:20px 0 12px;scrollbar-gutter:stable}
.live-flow{min-width:1120px;width:100%;height:100%;align-content:center}
.live-flow.is-active{display:block}
.live-flow picture{display:block;width:100%;height:100%}.live-flow img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.flow-lane{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:48px;align-items:center;margin:0;padding:0;list-style:none}
.flow-lane-short{grid-template-columns:repeat(4,minmax(0,1fr));width:78%}
.flow-lane li{position:relative;min-height:104px;padding:18px 16px;border:2px solid rgba(255,255,255,.82);border-radius:26px;display:grid;place-items:center;align-content:center;text-align:center;font:400 15px/1.22 var(--font-body);background:#121114}
.flow-lane li:not(:last-child)::after{content:"→";position:absolute;left:calc(100% + 13px);top:50%;transform:translateY(-50%);color:#fff;font:400 30px/1 var(--font-display)}
.flow-lane li b{display:block;margin-bottom:6px;color:var(--onboarding);font:400 14px/1 var(--font-display)}
.flow-lane li small{display:block;margin-top:5px;color:var(--text-45);font:400 12px/1 var(--font-display)}
.flow-lane li.receiver b{color:var(--receiver)}.flow-lane li.sender b{color:var(--sender)}.flow-lane li.both b{color:var(--text-60)}
#switch-flow{max-width:1600px}
#switch-flow .flow-lane{grid-template-columns:repeat(6,minmax(0,1fr))}
.flow-lane-return{width:100%;margin-left:0}
#switch-flow .flow-lane-return>li:first-child{grid-column:2}

.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.5vw,48px);margin-top:clamp(24px,4vh,44px)}
.card{position:relative;min-width:0;padding:clamp(18px,1.6vw,30px);border:1px solid var(--text-30);border-radius:var(--radius-card);background:var(--text-10)}
.card h3{margin:0;font:700 var(--fs-card)/1.14 var(--font-display)}
.card p{margin:12px 0 0;color:var(--text-60);font-size:var(--fs-small);line-height:1.43}
.card-media{margin-top:20px;border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:#09090a}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-accent{color:var(--project-accent,var(--brand))}
body[data-project="onboarding"] #research .panel-inner{justify-content:flex-start;padding:96px 110px 34px 98px}
.onboarding-research-title{margin:0;font:700 48px/1 var(--font-display)}
.onboarding-research-headline{margin:62px 0 0;font:700 30px/1.1 var(--font-display)}
.onboarding-research-intro{max-width:1050px;margin:14px 0 0;color:#fff;font-size:24px;line-height:1.28}
body[data-project="onboarding"] #research .cards{gap:52px;margin-top:110px}
body[data-project="onboarding"] #research .card{min-height:250px;padding:22px 24px;border-radius:28px}
body[data-project="onboarding"] #research .card>.eyebrow{margin:0 0 24px;color:var(--text-45);font-size:18px}
body[data-project="onboarding"] #research .card h3{font-size:28px}
body[data-project="onboarding"] #research .card>p{margin-top:12px;color:#fff;font-size:18px;line-height:1.25}
body[data-project="onboarding"] #research .card h4{margin:18px 0 0;color:var(--text-45);font:700 18px/1 var(--font-display)}
.research-principles{margin-top:52px}.research-principles h3{margin:0;font:700 28px/1 var(--font-display)}.research-principles p{display:flex;gap:46px;margin:16px 0 0;font:400 20px/1 var(--font-display)}.research-principles p span{color:var(--text-60)}
body[data-project="onboarding"] #research .actions{margin-top:55px}
.deck-link,.outline-button{min-height:59px;padding:0 24px;border:1px solid #fff;border-radius:var(--radius-control);background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;font:700 var(--fs-card)/1 var(--font-display);transition:background var(--motion-fast),color var(--motion-fast),transform var(--motion-fast)}
.deck-link:hover,.outline-button:hover{background:#fff;color:#111;transform:translateY(-1px)}
.actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:26px}

.carousel-layout{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.55fr);gap:clamp(28px,5vw,96px);align-items:center;min-height:0}
.carousel-copy{align-self:center}
.carousel-copy .copy{margin-top:18px}
.carousel-stage{position:relative;min-width:0;min-height:0}
.carousel-viewport{overflow:hidden}
.carousel-track{display:flex;transition:transform var(--motion-deck) var(--ease);will-change:transform}
.carousel-slide{flex:0 0 100%;min-width:0;display:grid;place-items:center}
.carousel-slide img,.carousel-slide video{max-width:100%;width:100%;max-height:min(68vh,730px);object-fit:contain}
.carousel-slide video{cursor:pointer}
.carousel-ui{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}
.carousel-dots{display:flex;align-items:center;justify-content:center;gap:7px;max-width:280px;flex-wrap:wrap}
.carousel-dot{width:8px;height:8px;padding:0;border-radius:50%;background:rgba(255,255,255,.28)}
.carousel-dot[aria-current="true"]{background:var(--project-accent,var(--brand));transform:scale(1.3)}
#interactions .panel-inner{justify-content:flex-start;padding:84px 92px 70px}
.interaction-heading{margin:0;font:700 32px/1 var(--font-display)}.interaction-key-hint{position:absolute;right:92px;top:94px;margin:0;font-size:16px}
#interactions .carousel-layout{position:relative;grid-template-columns:518px 308px;gap:0;width:850px;height:730px;margin:104px auto 0;border-radius:42px;background:#080808;overflow:visible}
#interactions .carousel-copy{padding:0 36px;align-self:center}#interactions .carousel-copy .copy{max-width:410px;font-size:20px;line-height:1.05}
#interactions .carousel-stage{position:static;align-self:center;width:308px}#interactions .carousel-viewport{border-radius:34px;overflow:hidden}
#interactions .carousel-slide video{width:308px;height:680px;max-height:none;object-fit:cover;background:#000}
#interactions .carousel-ui{position:absolute;inset:0 -110px;pointer-events:none;margin:0;justify-content:space-between}#interactions .carousel-arrow{pointer-events:auto;align-self:center;width:62px;height:62px;padding:0;font-size:34px}#interactions .carousel-dots{position:absolute;left:50%;bottom:-34px;transform:translateX(-50%);pointer-events:auto;margin:0}
#sequences .panel-inner{justify-content:flex-start;padding:84px 92px 70px}#sequences .carousel-layout{position:relative;display:grid;grid-template-columns:1fr;grid-template-rows:150px minmax(0,1fr);gap:0;width:1280px;height:730px;margin:104px auto 0;padding:26px 36px 30px;border-radius:42px;background:#080808;overflow:visible}#sequences .carousel-copy{position:relative;z-index:2;grid-row:1;align-self:start;padding:0}#sequences .carousel-copy .copy{max-width:920px;margin-top:12px;font-size:18px;line-height:1.2}#sequences .carousel-stage{position:static;z-index:1;grid-row:2;align-self:end;width:100%}#sequences .carousel-viewport{border-radius:18px;overflow:hidden}#sequences .carousel-slide video{width:100%;height:494px;max-height:none;object-fit:cover}#sequences .carousel-ui{position:absolute;inset:0 -110px;pointer-events:none;margin:0;justify-content:space-between}#sequences .carousel-arrow{pointer-events:auto;align-self:center;width:62px;height:62px;padding:0;font-size:34px}#sequences .carousel-dots{position:absolute;left:50%;bottom:-34px;transform:translateX(-50%);pointer-events:auto;margin:0}
.phone-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:end}
.phone-pair img{max-height:min(64vh,690px);object-fit:contain}
.screen-caption{margin-top:12px;text-align:center;font:400 var(--fs-small)/1.35 var(--font-display);color:var(--text-60)}
.flow-deck .panel-inner{justify-content:flex-start;padding:66px 72px 42px}
.flow-deck h2{margin:0;font:700 43px/1 var(--font-display)}
.flow-key-hint{position:absolute;right:92px;top:82px;margin:0;font-size:16px;color:#fff}
.flow-deck-carousel{position:relative;width:min(100%,1660px);margin:52px auto 0;min-height:0}
.flow-deck-carousel .carousel-stage{width:100%}
.screen-batch{grid-template-columns:repeat(4,299px);justify-content:center;gap:52px;align-items:start}
.screen-batch-three,.screen-batch-two{grid-template-columns:repeat(3,299px)}
.switch-row{grid-template-columns:repeat(4,299px)}
.screen-batch-one{grid-template-columns:299px}
.screen-batch figure{margin:0;display:grid;justify-items:center;min-width:0}
.screen-batch img{width:299px!important;height:662px;max-height:none!important;object-fit:cover!important;border-radius:29px}
.screen-batch figcaption{display:grid;justify-items:center;gap:9px;margin-top:14px;text-align:center;font-family:var(--font-body)}
.screen-batch figcaption strong{font:700 24px/1 var(--font-display);color:var(--text-45)}
.screen-batch figcaption span{font-size:20px;color:#fff}.screen-batch figcaption small{max-width:280px;font-size:16px;line-height:1.15;color:var(--text-45)}
.flow-deck-carousel .carousel-ui{position:absolute;inset:0 -54px;pointer-events:none;margin:0;justify-content:space-between}
.flow-deck-carousel .carousel-arrow{pointer-events:auto;align-self:center;width:54px;height:54px;padding:0;font:700 31px/1 var(--font-display)}
.flow-deck-carousel .carousel-dots{position:absolute;left:50%;bottom:-32px;transform:translateX(-50%);margin:0;pointer-events:auto}
.flow-deck-link{position:static;align-self:center;margin-top:66px;min-width:350px}
.flow-deck-link:hover{transform:translateY(-1px)}
.switch-row figure{position:relative;padding-top:30px}.switch-row figure::before{position:absolute;top:0;left:50%;transform:translateX(-50%);font:400 17px/1 var(--font-display);white-space:nowrap}.switch-row figure[data-device="receiver"]::before{content:"↙ Receiver";color:var(--receiver)}.switch-row figure[data-device="sender"]::before{content:"↗ Sender";color:var(--sender)}.switch-row figure[data-device="both"]::before{content:"↗↙ Both Devices";color:var(--text-60)}
.switch-row figure[data-device="receiver"] img{border:3px solid var(--receiver)}.switch-row figure[data-device="sender"] img{border:3px solid var(--sender)}.switch-row figure[data-device="both"] img{border:3px solid var(--text-60)}

#performance .panel-inner{justify-content:flex-start;padding:98px 80px 84px}
.performance-title{margin:0;font:700 32px/1 var(--font-display)}
.performance-intro{max-width:1040px;margin:18px 0 0;color:#fff;font-size:24px;line-height:1.34}
.performance-tests{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px;margin-top:36px}
.performance-tests span{font:400 16px/1 var(--font-display);color:var(--project-accent)}
.performance-tests h3{margin:9px 0 0;font:700 28px/1 var(--font-display)}
.performance-tests p{margin:30px 0 0;color:var(--text-60);font-size:20px;line-height:1.05}.performance-tests strong{color:#fff}
.performance-kicker{margin:58px 0 0;font:400 20px/1 var(--font-display);color:var(--text-45)}
.comparison-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:26px}
.comparison-card{min-width:0;min-height:337px;padding:24px;border:1px solid var(--text-30);border-radius:24px;background:rgba(255,255,255,.1);display:flex;flex-direction:column}
.comparison-card>.card-accent{font:400 16px/1 var(--font-display)}
.comparison-card>h3{margin:8px 0 0;font:700 28px/1.05 var(--font-display)}
.comparison-card>p{margin:22px 0 18px;color:var(--text-60);font-size:20px;line-height:1.04}.comparison-card>p strong{color:#fff}
.comparison-card .pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:auto}
.comparison-card figure{margin:0}.comparison-card img{width:100%;height:98px;object-fit:cover;border-radius:20px}.comparison-card figcaption{text-align:center;margin-top:10px;font:400 16px/1 var(--font-display);color:#fff}
#performance .actions{justify-content:center;margin-top:58px;gap:48px}
#performance .deck-link{min-width:336px}

#workflow .panel-inner{justify-content:flex-start;padding:144px 80px 70px}
.workflow-copy{width:780px;position:relative;z-index:2}.workflow-copy>.performance-intro{max-width:720px;font-size:20px}
.workflow-columns{display:grid;grid-template-columns:360px 360px;gap:42px;margin-top:54px}
.workflow-step{margin:0;color:var(--text-45);font:400 20px/1 var(--font-display)}.workflow-step span{color:var(--project-accent);margin-right:14px}.workflow-step strong{color:#fff}
.workflow-columns article>h3{margin:30px 0 15px;font:400 20px/1 var(--font-display);color:var(--text-45)}
.core-checklist{list-style:none;margin:0;padding:0;display:grid;gap:9px;font:400 16px/1 var(--font-display)}.core-checklist li::before{content:"✓";margin-right:9px}
.workflow-table,.feedback-table{width:100%;border-collapse:collapse;margin-top:24px;font-size:18px}
.workflow-table th,.workflow-table td,.feedback-table th,.feedback-table td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--text-20)}
.workflow-table th,.feedback-table th{font-family:var(--font-display);font-weight:400;color:var(--text-45)}
.workflow-fan{position:absolute;right:64px;top:210px;width:820px;height:650px;object-fit:contain}

.modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,36px);margin-top:34px}
.mode{display:grid;justify-items:center;gap:12px}
.mode img{height:min(52vh,560px);object-fit:contain;border-radius:28px}
.mode span{display:grid;justify-items:center;gap:8px;font:400 var(--fs-small)/1.2 var(--font-display);color:#fff}.mode span b{font-size:20px;color:var(--text-45)}
#baseline .panel-inner{justify-content:flex-start;padding-top:108px}.baseline-intro{max-width:1050px;margin:14px 0 0;color:#fff;font-size:18px;line-height:1.35}#baseline .modes{width:min(1180px,80vw);margin:38px auto 0}#baseline .actions{justify-content:center}

.haptic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}
.haptic-tier{position:relative;min-height:132px;padding:18px;text-align:left;border:1px solid var(--text-30);border-radius:var(--radius-card);background:var(--text-10);overflow:hidden}
.haptic-tier::after{content:"";position:absolute;inset:0;background:var(--project-accent);opacity:0;transition:opacity 100ms}
.haptic-tier.is-buzzing::after{opacity:.23}
.haptic-tier strong,.haptic-tier span{position:relative;z-index:1;display:block}
.haptic-tier strong{font:700 var(--fs-card)/1 var(--font-display);color:var(--project-accent)}
.haptic-tier span{margin-top:10px;color:var(--text-60);font-size:var(--fs-small);line-height:1.35}
.sfx-button{min-width:118px;padding:8px 12px;border:1px solid var(--text-30);border-radius:var(--radius-control);background:var(--text-10);font:400 var(--fs-micro)/1 var(--font-display);transition:background var(--motion-fast),color var(--motion-fast)}.sfx-button::before{content:"▶";display:inline-block;margin-right:8px;font-size:.8em;color:#fff}
.sfx-button:hover{background:var(--project-accent);color:#111}
#feedback .panel-inner{justify-content:flex-start;padding:112px 80px 70px}#feedback .panel-grid{grid-template-columns:620px 752px;gap:118px;align-items:start;justify-content:center}.feedback-intro{margin:20px 0 0;color:#fff;font-size:20px;line-height:1.2}.haptic-grid{grid-template-columns:1fr;gap:24px;margin-top:48px}.haptic-tier{min-height:138px;padding:26px 24px}.haptic-tier strong{color:var(--text-45);font-weight:400}.haptic-tier[data-haptic="medium"] strong{color:#fff}.haptic-tier[data-haptic="large"] strong,.feedback-large{color:var(--project-accent)!important}.feedback-small{color:var(--text-45)}#feedback .feedback-table{margin-top:0;font-size:20px}#feedback .feedback-table th,#feedback .feedback-table td{padding:15px 8px}#feedback .feedback-table th{font-size:24px;color:#fff;text-decoration:underline;text-underline-offset:4px}#feedback .sfx-button{min-width:130px}

@media (min-width:1600px) and (max-height:1000px){
  #feedback .panel-inner{padding:74px 64px 48px}
  #feedback .panel-grid{grid-template-columns:560px 720px;gap:82px}
  #feedback .feedback-intro{font-size:17px}
  #feedback .haptic-grid{gap:14px;margin-top:30px}
  #feedback .haptic-tier{min-height:110px;padding:18px 20px}
  #feedback .feedback-table{font-size:16px}
  #feedback .feedback-table th{font-size:20px}
  #feedback .feedback-table th,#feedback .feedback-table td{padding:9px 7px}
  #feedback .sfx-button{min-width:112px;padding:7px 9px}
}

.slice-research{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:26px}
.slice-research .card{display:flex;flex-direction:column}
.slice-research .card-media{margin-top:auto;aspect-ratio:4/3}
.slice-challenge-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:74px}
#challenge .slice-challenge-copy h2,#challenge .slice-challenge-goals h2{margin:0;color:var(--text-45);font:400 20px/1.2 var(--font-display)}
.slice-challenge-copy>p{max-width:890px;margin:18px 0 0;color:#fff;font-size:20px;line-height:1.3}
.slice-challenge-goals ol{list-style:none;display:grid;gap:29px;margin:22px 0 0;padding:0}
.slice-challenge-goals li{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:start}
.slice-challenge-goals li>span{color:var(--project-accent);font:400 24px/1.15 var(--font-display)}
.slice-challenge-goals li p{margin:0;color:var(--text-45);font:400 20px/1.12 var(--font-display)}
.slice-challenge-goals li strong{color:#fff;font-weight:700}
.slice-challenge-media{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:104px}
.slice-challenge-media>img,.slice-challenge-reward{width:100%;height:438px;border-radius:28px;object-fit:cover}
.slice-challenge-reward{position:relative;overflow:hidden;background:#20130f}
.slice-challenge-reward img{position:absolute;left:-115%;top:-131%;width:227%;max-width:none;height:auto}
body[data-project="slice"] #challenge .panel-inner{justify-content:flex-start;padding:116px 66px 38px}
body[data-project="slice"] #research .panel-inner{justify-content:flex-start;padding:108px 80px 70px}.research-intro{margin:14px 0 0;max-width:1720px;color:#fff;font-size:24px;line-height:1.3}body[data-project="slice"] .slice-research{margin-top:62px;gap:30px}body[data-project="slice"] .slice-research .card{height:697px;padding:24px;border-radius:28px}body[data-project="slice"] .slice-research .card>.eyebrow{font-size:22px}body[data-project="slice"] .slice-research .card>p{font-size:18px;line-height:1.35}body[data-project="slice"] .slice-research .card>p strong{color:#fff}body[data-project="slice"] .slice-research .card-media{display:grid;gap:12px;aspect-ratio:auto;height:450px;border-radius:22px;overflow:hidden}body[data-project="slice"] .slice-research .card-media img{width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;filter:grayscale(1);border-radius:14px}.research-board-kings{grid-template-columns:1fr 1fr}.research-slotomania,.research-angry-birds{grid-template-columns:1fr 1fr;grid-template-rows:2fr 1fr}.research-slotomania img:first-child,.research-angry-birds img:first-child{grid-column:1/-1}
.concept-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,88px);align-items:center}
.definition-list{display:grid;gap:12px;margin-top:24px}
.definition{padding:18px 20px;border:1px solid var(--text-30);border-radius:var(--radius-card);background:var(--text-10)}
.definition dt{font:400 var(--fs-eye)/1.2 var(--font-display);color:var(--project-accent)}
.definition dd{margin:8px 0 0;color:var(--text-60);font-size:var(--fs-small);line-height:1.42}
#concept .panel-inner{justify-content:flex-start;padding:98px 84px 30px}.concept-definitions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px;margin:22px 0 0}.concept-definitions .definition{min-height:260px;padding:22px 24px;border-radius:28px}.concept-definitions .definition dt{font-size:18px}.concept-definitions .definition dd{margin-top:20px;color:#fff;font-size:18px;line-height:1.35}.gameplay-loop-title{margin:125px 0 0;font:700 32px/1 var(--font-display)}.concept-flow{height:410px;margin-top:8px}.concept-flow picture,.concept-flow img{display:block;width:100%;height:100%}.concept-flow img{object-fit:contain}
#interface .panel-inner{justify-content:flex-start;padding:106px 84px 38px}
.interface-intro{max-width:1580px;margin:14px 0 0;color:#fff;font-size:24px;line-height:1.3}
.interface-showcase{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(360px,.9fr);gap:42px;margin-top:46px;min-height:0}
.interface-showcase figure{min-width:0;margin:0}
.interface-showcase img{width:100%;object-fit:contain;border-radius:26px}
.interface-showcase figcaption{margin-top:18px;color:var(--project-accent);font:400 21px/1.1 var(--font-display)}
.interface-main img{height:auto;max-height:610px}
.interface-details{display:grid;grid-template-rows:auto 1fr;gap:34px;min-width:0}
.interface-lobby img{height:303px}
.interface-lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.interface-rewards>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.interface-rewards img{height:106px;object-fit:contain;border-radius:18px;background:#080808}
.interface-cta img{height:106px;object-fit:contain;border-radius:18px;background:#080808;padding:13px}
.disclaimer{position:absolute;left:var(--editorial-inset);right:var(--editorial-inset);bottom:28px;color:var(--text-45);font-size:10px;line-height:1.4}

.modal-backdrop{position:fixed;z-index:120;inset:0;display:none;background:rgba(4,1,10,.68);backdrop-filter:blur(18px) saturate(.7);-webkit-backdrop-filter:blur(18px) saturate(.7)}
.modal-backdrop.is-open{display:block}
.global-menu{position:absolute;inset:0;overflow:auto;padding:clamp(70px,8vh,96px) clamp(42px,6vw,110px);display:grid;grid-template-columns:minmax(320px,500px) minmax(420px,560px);justify-content:center;gap:clamp(56px,6vw,112px);align-items:center}
.menu-close{position:fixed;left:var(--edge);top:var(--edge);width:54px;height:54px;border-radius:50%;background:transparent;font:400 42px/1 var(--font-display);z-index:2}
.menu-nav{display:grid;gap:18px;align-content:center}
.menu-nav>a{width:max-content;font:700 clamp(34px,3vw,58px)/1.05 var(--font-display);text-decoration:underline;text-underline-offset:5px}
.menu-work{margin-top:14px;display:grid;gap:14px}
.menu-work>span,.contact-detail span,.field-label{font:400 var(--fs-eye)/1.2 var(--font-display);color:var(--text-45)}
.menu-work a{display:flex;align-items:center;gap:16px;width:max-content;font:700 clamp(22px,1.75vw,34px)/1 var(--font-display);text-decoration:underline;text-underline-offset:5px}
.menu-work img{width:36px;height:36px;object-fit:contain}
.menu-contact{display:grid;gap:18px;width:min(100%,560px);justify-self:start}
.contact-detail a{display:block;margin-top:7px;width:max-content;font:700 var(--fs-section)/1.1 var(--font-display);text-decoration:underline;text-underline-offset:4px}
.contact-form{display:grid;gap:16px;margin-top:16px}
.contact-form label{display:block}
.contact-form input{width:100%;height:72px;padding:0 24px;border:2px solid rgba(255,255,255,.82);border-radius:var(--radius-control);background:rgba(0,0,0,.08);color:#fff;font:400 clamp(17px,1.25vw,24px)/1 var(--font-display)}
.contact-form input::placeholder{color:var(--text-45);opacity:1}
.contact-form button{justify-self:end;min-width:104px;height:54px;border:1px solid #fff;border-radius:18px;background:transparent;font:700 var(--fs-card)/1 var(--font-display)}

.lightbox{position:fixed;z-index:140;inset:0;display:none;background:rgba(0,0,0,.92);align-items:center;justify-content:center;padding:72px}
.lightbox.is-open{display:flex}
.lightbox-stage{width:100%;height:100%;display:grid;place-items:center}
.lightbox-stage img,.lightbox-stage video{max-width:100%;max-height:100%;object-fit:contain}
.lightbox-close{position:absolute;right:24px;top:24px;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.12);font:400 30px/1 var(--font-display)}
.lightbox-arrow{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:52px;height:52px;padding:14px;border:1px solid var(--text-30);border-radius:var(--radius-control);background:rgba(0,0,0,.5)}
.lightbox-arrow img{width:100%;height:100%;object-fit:contain}.lightbox-prev{left:20px}.lightbox-next{right:20px}
.lightbox-count{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);margin:0;font:400 12px/1 var(--font-display);color:var(--text-60)}

.about-page{height:100vh;background:var(--cosmic);overflow:hidden;position:relative}
.about-wallpaper{position:fixed;inset:0;width:100%;height:100%;border:0;z-index:0;pointer-events:none}
.about-scrim{position:fixed;inset:0;z-index:1;background:linear-gradient(90deg,rgba(14,5,32,.02),rgba(14,5,32,.4))}
.about-layout{position:relative;z-index:2;width:min(100%,1920px);height:100vh;margin:auto;display:grid;grid-template-columns:38% 62%;gap:0;align-items:center;padding:clamp(60px,7vh,78px) clamp(36px,2.8vw,54px) clamp(38px,5vh,54px) 20px;overflow:hidden}
.about-portrait{position:fixed;z-index:2;left:-10vw;bottom:0;width:auto;max-width:none;height:96vh;object-fit:contain;object-position:left bottom;mix-blend-mode:luminosity;filter:grayscale(1) contrast(1.05) brightness(1.05);opacity:.91}
.about-content{grid-column:2;position:relative;z-index:3;width:min(1040px,100%)}
.about-wordmark{width:min(410px,42vw);height:auto;margin-bottom:28px}
.about-cards{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:20px 24px}
.about-card{padding:24px 28px;border:1px solid var(--text-30);border-radius:var(--radius-card);background:rgba(255,255,255,.1);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.about-card.bio{grid-column:1;grid-row:1}
.about-card:nth-child(2){grid-column:2;grid-row:1}
.about-card:nth-child(3){grid-column:2;grid-row:2}
.about-card.contact{grid-column:1;grid-row:2;align-self:start}
.about-card h2{margin:0 0 18px;font:400 var(--fs-eye)/1.2 var(--font-display);color:var(--text-60)}
.about-card p{margin:0;color:#fff;font-size:16px;line-height:1.3}
.about-card p+p{margin-top:1em}
.journey-list{display:grid;gap:7px}
.journey-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:9px 14px;border-radius:10px;background:rgba(0,0,0,.12)}
.journey-row strong{font:700 16px/1.05 var(--font-display)}
.journey-row span{font:400 15px/1.1 var(--font-display)}
.journey-row small{display:block;color:var(--text-60);font-size:var(--fs-small)}
.about-email{font:700 var(--fs-section)/1.1 var(--font-display);text-decoration:underline;text-underline-offset:4px}

@media (max-width:1023px){
  .panel-inner{padding-left:clamp(34px,5vw,64px);padding-right:clamp(34px,5vw,64px)}
  .hero-panel .hero-copy{width:min(600px,64vw)}
  .hero-panel .meta-row{left:160px;right:92px}
  .cards{gap:18px}
  .card{padding:18px}
  .keyboard-hint{display:none}
  .comparison-grid{grid-template-columns:repeat(2,1fr)}
  .about-layout{grid-template-columns:34% 66%;padding-left:20px;padding-right:32px}
  .about-portrait{left:-16vw}
}

@media (min-width:768px) and (max-width:1599px){
  .panel-inner{padding-left:48px;padding-right:48px}
  body[data-project="onboarding"] #challenge .panel-inner{padding-top:96px}
  body[data-project="onboarding"] #challenge .panel-grid{grid-template-columns:minmax(0,1.55fr) minmax(250px,.8fr);gap:54px;padding-left:0}
  body[data-project="onboarding"] #challenge .challenge-media{width:100%;height:min(69vh,710px)}
  body[data-project="camera"] #challenge .panel-grid{grid-template-columns:minmax(0,1fr) clamp(320px,28vw,404px);gap:60px}body[data-project="camera"] #challenge .challenge-media{width:clamp(320px,28vw,404px);height:auto;aspect-ratio:404/860}.camera-challenge-statement{font-size:clamp(22px,2vw,30px)}.camera-goals-label{margin-top:42px}body[data-project="camera"] #challenge .goal-list{gap:20px}body[data-project="camera"] #challenge .goal h3,body[data-project="camera"] #challenge .goal p{font-size:clamp(15px,1.35vw,20px)}
  .screen-batch{grid-template-columns:repeat(4,minmax(0,253px));gap:28px}.screen-batch-three,.screen-batch-two{grid-template-columns:repeat(3,minmax(0,253px))}.switch-row{grid-template-columns:repeat(4,minmax(0,253px))}.screen-batch img{width:min(100%,253px)!important;height:auto;aspect-ratio:260/576}
  #interactions .carousel-layout{grid-template-columns:minmax(370px,1fr) 260px;width:min(760px,calc(100vw - 190px));height:620px;margin-top:78px}#interactions .carousel-stage{width:260px}#interactions .carousel-slide video{width:260px;height:574px}
  #sequences .carousel-layout{width:min(1280px,calc(100vw - 190px));height:min(730px,calc(100vh - 128px));margin-top:76px;grid-template-rows:150px minmax(0,1fr)}#sequences .carousel-slide video{height:min(466px,calc(100vh - 342px))}
  body[data-project="slice"] #challenge .panel-inner{padding:96px 44px 36px}.slice-challenge-layout{gap:44px}.slice-challenge-copy>p{font-size:clamp(15px,1.25vw,20px)}.slice-challenge-goals ol{gap:18px}.slice-challenge-goals li p{font-size:clamp(15px,1.25vw,20px)}.slice-challenge-goals li>span{font-size:18px}.slice-challenge-media{margin-top:58px}.slice-challenge-media>img,.slice-challenge-reward{height:clamp(330px,28vw,438px)}
  #concept .panel-inner{padding-left:44px;padding-right:44px}.concept-definitions{gap:12px}.concept-definitions .definition{min-height:230px;padding:16px}.concept-definitions .definition dd{font-size:14px;margin-top:12px}.gameplay-loop-title{margin-top:66px}.concept-flow{height:340px}
  #interface .panel-inner{padding-left:44px;padding-right:44px}.interface-showcase{grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr);gap:26px}.interface-main img{height:clamp(360px,31vw,500px)}.interface-lobby img{height:clamp(210px,17.5vw,280px)}.interface-showcase figcaption{font-size:16px}.interface-rewards img,.interface-cta img{height:clamp(70px,6vw,92px)}
  #workflow .panel-inner{padding:112px 48px 68px}.workflow-copy{width:48%}.workflow-columns{grid-template-columns:1fr;gap:22px;margin-top:38px}.workflow-fan{right:24px;top:190px;width:48%;height:560px}
  #feedback .panel-inner{padding:90px 48px 64px}#feedback .panel-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:42px}#feedback .feedback-intro{font-size:16px}#feedback .haptic-grid{gap:14px;margin-top:28px}#feedback .haptic-tier{min-height:112px;padding:18px}#feedback .feedback-table{font-size:14px}#feedback .feedback-table th{font-size:17px}#feedback .feedback-table th,#feedback .feedback-table td{padding:9px 6px}#feedback .sfx-button{min-width:104px;padding:7px 9px}
}

@media (max-width:767px){
  .desktop-only{display:none}
  .site-logo{left:20px;top:22px;width:120px}
  .escape{left:20px;top:18px;min-width:44px;height:44px;font-size:12px}
  .menu-trigger{right:20px;top:18px;width:52px;height:52px;padding:13px}
  .panel-inner{padding:82px 20px 74px;justify-content:flex-start}
  .panel-grid,.carousel-layout,.concept-grid{grid-template-columns:1fr;gap:22px}
  .panel-copy{max-width:none}
  .panel-copy>.copy{margin-top:16px}
  .panel-media>img,.panel-media>video{max-height:46vh}
  .deck-controls{display:none}
  .nav-arrow,.carousel-arrow{width:42px;height:42px;padding:11px}
  .section-rail{display:none}
  .rail-dot{padding:8px 2px}
  .rail-dot::before{width:6px;height:6px}
  .rail-dot[aria-current="true"]::before{width:18px}
  .hero-panel .panel-inner{justify-content:flex-start;padding-top:104px;padding-bottom:58px}
  .hero-panel .meta-row{position:static;margin:0 0 49px;gap:22px;font-size:11px;justify-content:space-between}
  .hero-panel .meta-item{display:grid;gap:4px}
  .hero-panel .hero-copy{width:100%;text-align:center;transform:none}
  .hero-panel.camera-hero .hero-copy{width:100%}
  .hero-panel .hero-copy>.copy{font-family:var(--font-display);font-size:16px;color:#fff;line-height:1.2}
  .hero-panel .hero-nav-tip{font-size:0;margin-top:30px}.hero-panel .hero-nav-tip::after{content:"[Navigate with left and right swipes]";font:400 13px/1.3 var(--font-display)}
  .hero-panel.onboarding-hero .hero-art{inset:auto 0 0;width:100%;height:50%;align-items:flex-end}
  .hero-panel.onboarding-hero .meta-row{margin-bottom:51px}
  .hero-panel.camera-hero{background-image:url("../assets/camera/camera-hero-figma-mobile.webp");background-position:center;background-size:cover}
  .hero-panel.camera-hero::after{background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.06) 38%,rgba(0,0,0,.55) 100%)}
  .hero-panel.slice-hero{background-position:center}
  .slice-hero-art{left:2%;right:2%;top:43%;bottom:auto;width:96%;height:52%}
  .hero-panel.onboarding-hero .hero-nav-tip{margin-top:52px}
  .cards,.slice-research{grid-template-columns:1fr;gap:12px;margin-top:18px}
  body[data-project="onboarding"] #research .panel-inner{padding:82px 20px 74px;overflow-y:auto}.onboarding-research-title{font-size:28px}.onboarding-research-headline{margin-top:32px;font-size:20px}.onboarding-research-intro{font-size:15px}.onboarding-research-intro{line-height:1.3}body[data-project="onboarding"] #research .cards{gap:12px;margin-top:28px}body[data-project="onboarding"] #research .card{min-height:0;padding:16px}body[data-project="onboarding"] #research .card>.eyebrow{margin-bottom:12px;font-size:12px}body[data-project="onboarding"] #research .card h3{font-size:18px}body[data-project="onboarding"] #research .card>p{font-size:13px}body[data-project="onboarding"] #research .card h4{margin-top:15px;font-size:12px}.research-principles{margin-top:28px}.research-principles h3{font-size:20px}.research-principles p{flex-wrap:wrap;gap:12px 22px;font-size:13px}body[data-project="onboarding"] #research .actions{margin-top:28px}
  body[data-project="slice"] #research .panel-inner{padding:82px 20px 74px;overflow-y:auto}body[data-project="slice"] .research-intro{font-size:15px}body[data-project="slice"] .slice-research{margin-top:22px}body[data-project="slice"] .slice-research .card{height:auto;padding:16px}body[data-project="slice"] .slice-research .card>.eyebrow{font-size:14px}body[data-project="slice"] .slice-research .card>p{font-size:13px}body[data-project="slice"] .slice-research .card-media{height:220px}
  .card{padding:14px 16px;border-radius:18px}
  .card p{margin-top:6px}
  .card-media{margin-top:10px;aspect-ratio:16/7}
  .goal-list{gap:8px;margin-top:18px}
  .goal{grid-template-columns:34px 1fr;padding-top:8px}
  .challenge-media{height:37vh}
  body[data-project="camera"] #challenge .panel-inner{padding:82px 20px 74px;overflow-y:auto}body[data-project="camera"] #challenge .panel-grid{grid-template-columns:1fr;gap:26px}body[data-project="camera"] #challenge .panel-copy{max-width:none}.camera-challenge-statement{font-size:18px;line-height:1.22}.camera-goals-label{margin-top:28px;font-size:14px}body[data-project="camera"] #challenge .goal-list{gap:14px;margin-top:16px}body[data-project="camera"] #challenge .goal{grid-template-columns:36px 1fr;gap:8px}body[data-project="camera"] #challenge .goal h3,body[data-project="camera"] #challenge .goal p{font-size:13px;line-height:1.2}body[data-project="camera"] #challenge .challenge-media{width:min(58vw,238px);height:auto;aspect-ratio:404/860;justify-self:center;border-radius:28px}
  body[data-project="onboarding"] #challenge .panel-inner{padding-top:82px;overflow-y:auto}
  body[data-project="onboarding"] #challenge .panel-grid{grid-template-columns:1fr;padding-inline:0;gap:24px}
  body[data-project="onboarding"] #challenge .challenge-media{width:min(58vw,240px);height:auto;aspect-ratio:978/2176;border-radius:26px}
  body[data-project="slice"] #challenge .panel-inner{padding:82px 20px 74px;overflow-y:auto}.slice-challenge-layout{grid-template-columns:1fr;gap:28px}.slice-challenge-copy>p{font-size:17px;line-height:1.3}.slice-challenge-goals ol{gap:16px;margin-top:16px}.slice-challenge-goals li{grid-template-columns:38px 1fr;gap:8px}.slice-challenge-goals li>span{font-size:15px}.slice-challenge-goals li p{font-size:13px;line-height:1.25}.slice-challenge-media{grid-template-columns:1fr;gap:14px;margin-top:28px}.slice-challenge-media>img,.slice-challenge-reward{height:auto;aspect-ratio:2.05/1;border-radius:18px}
  .challenge-statement{font-size:18px}.challenge-subhead{margin-top:22px}.challenge-output{grid-template-columns:1fr;gap:12px}
  .flow-frame{height:62vh}
  #user-flow .panel-inner{padding:82px 20px 74px}#user-flow .tabs{width:100%}#user-flow .tabs button{min-height:44px;padding-inline:10px;font-size:13px}#user-flow .flow-frame{height:68vh}
  .tabs{margin:12px 0}
  .tabs button{padding:0 14px}
  .carousel-layout{height:100%;grid-template-rows:auto minmax(0,1fr)}
  #interactions .panel-inner{padding:82px 20px 68px}.interaction-heading{font-size:24px}.interaction-key-hint{display:none}#interactions .carousel-layout{grid-template-columns:1fr;width:100%;height:auto;margin-top:38px;border-radius:24px;padding:18px;grid-template-rows:auto auto}#interactions .carousel-copy{padding:0;order:2;margin-top:16px}#interactions .carousel-copy .copy{font-size:14px}#interactions .carousel-stage{position:relative;width:100%;order:1}#interactions .carousel-slide video{width:100%;height:48vh;object-fit:contain}#interactions .carousel-ui{inset:0 -4px}#interactions .carousel-arrow{width:42px;height:42px}#interactions .carousel-dots{margin-bottom:-54px}
  #sequences .panel-inner{padding:82px 20px 68px}#sequences .carousel-layout{grid-template-columns:1fr;width:100%;height:auto;margin-top:38px;border-radius:24px;padding:18px;grid-template-rows:auto auto}#sequences .carousel-copy{order:2;margin-top:16px;padding:0}#sequences .carousel-copy .copy{font-size:14px}#sequences .carousel-stage{position:relative;width:100%;order:1}#sequences .carousel-slide video{width:100%;height:34vh;object-fit:cover}#sequences .carousel-ui{inset:0 -4px}#sequences .carousel-arrow{width:42px;height:42px}#sequences .carousel-dots{margin-bottom:-54px}
  .carousel-copy .copy{margin-top:10px;font-size:14px}
  .carousel-slide img,.carousel-slide video{max-height:52vh}
  .flow-deck .panel-inner{padding:82px 20px 42px}.flow-deck h2{font-size:28px}.flow-key-hint{display:none}.flow-deck-carousel{margin-top:34px}.screen-batch,.screen-batch-two,.screen-batch-three,.switch-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.screen-batch figure:nth-child(3),.screen-batch figure:nth-child(4){display:none}.screen-batch img{width:100%!important;height:auto;max-height:50vh!important;aspect-ratio:auto;object-fit:contain!important;border-radius:18px}.screen-batch figcaption strong{font-size:16px}.screen-batch figcaption span{font-size:13px}.screen-batch figcaption small{font-size:10px}.flow-deck-carousel .carousel-ui{inset:0 -4px}.flow-deck-carousel .carousel-arrow{width:42px;height:42px;font-size:24px}.flow-deck-carousel .carousel-dots{bottom:-28px}.flow-deck-link{margin-top:54px;min-width:220px;min-height:46px;font-size:13px}
  #user-flow .panel-inner>.eyebrow{font-size:24px}.live-flow-frame{padding-top:18px}.live-flow{min-width:980px}.flow-lane{gap:34px}.flow-lane li{min-height:92px;padding:14px 12px;font-size:13px}.flow-lane li:not(:last-child)::after{left:calc(100% + 8px);font-size:23px}
  .phone-pair{gap:8px}
  .screen-caption{font-size:10px}
  .comparison-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
  #performance .panel-inner{padding:82px 20px 74px;overflow-y:auto}.performance-title{font-size:24px}.performance-intro{font-size:16px;margin-top:12px}.performance-tests{grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.performance-tests span{font-size:11px}.performance-tests h3{font-size:17px}.performance-tests p{font-size:12px;margin-top:10px}.performance-kicker{font-size:14px;margin-top:28px}.comparison-card{min-height:0;padding:13px}.comparison-card>h3{font-size:16px}.comparison-card>p{font-size:12px;margin:10px 0}.comparison-card img{height:70px;border-radius:10px}.comparison-card .pair{gap:7px}.comparison-card figcaption{font-size:10px;margin-top:5px}#performance .actions{margin-top:20px;gap:10px}#performance .deck-link{min-width:0;font-size:12px}
  #workflow .panel-inner{padding:82px 20px 74px;overflow-y:auto}.workflow-copy{width:100%}.workflow-copy>.performance-intro{font-size:15px}.workflow-columns{grid-template-columns:1fr;gap:22px;margin-top:28px}.workflow-step{font-size:14px}.workflow-fan{position:static;width:100%;height:auto;margin-top:22px}.core-checklist{font-size:13px}
  .workflow-table{margin-top:10px}
  .workflow-table th,.workflow-table td,.feedback-table th,.feedback-table td{padding:5px 6px;font-size:10px}
  .modes{gap:8px;margin-top:18px}
  .mode img{height:44vh}
  .haptic-grid{gap:6px;margin-top:14px}
  .haptic-tier{min-height:104px;padding:10px;border-radius:14px}
  .haptic-tier strong{font-size:12px}
  .haptic-tier span{font-size:9px;margin-top:7px}
  .feedback-table{margin-top:12px}
  #feedback .panel-inner{padding:82px 20px 74px;overflow-y:auto}#feedback .panel-grid{grid-template-columns:1fr;gap:26px}.feedback-intro{font-size:15px}.haptic-grid{gap:10px;margin-top:20px}#feedback .feedback-table{font-size:11px}#feedback .feedback-table th{font-size:13px}#feedback .sfx-button{min-width:90px}
  .definition-list{gap:7px;margin-top:12px}
  .definition{padding:10px 12px;border-radius:14px}
  #concept .panel-inner{padding:82px 20px 74px;overflow-y:auto}.concept-definitions{grid-template-columns:1fr;gap:10px}.concept-definitions .definition{min-height:0;padding:14px}.concept-definitions .definition dt{font-size:13px}.concept-definitions .definition dd{font-size:13px;margin-top:8px}.gameplay-loop-title{font-size:24px;margin-top:28px}.concept-flow{height:60vh}
  #interface .panel-inner{padding:82px 20px 82px;overflow-y:auto}.interface-intro{font-size:15px;line-height:1.35}.interface-showcase{grid-template-columns:1fr;gap:22px;margin-top:26px}.interface-main img,.interface-lobby img{height:auto;max-height:none}.interface-showcase figcaption{margin-top:9px;font-size:13px}.interface-details{gap:22px}.interface-lower{gap:12px}.interface-rewards>div{gap:8px}.interface-rewards img,.interface-cta img{height:76px;border-radius:13px}.interface-cta img{padding:9px}
  .disclaimer{left:20px;right:20px;bottom:58px;font-size:7.5px}
  .global-menu{padding:84px 24px 36px;grid-template-columns:1fr;gap:28px;align-content:start}
  .menu-nav{gap:12px}
  .menu-contact{gap:16px}
  .contact-form{margin-top:8px}
  .lightbox{padding:64px 46px 44px}.lightbox-arrow{width:40px;height:40px;padding:10px}.lightbox-prev{left:4px}.lightbox-next{right:4px}.lightbox-count{bottom:16px}
  .about-page{overflow:auto}
  .about-layout{display:block;min-height:auto;padding:19vh 16px 40px}
  .about-portrait{position:absolute;top:24px;left:0;width:100%;height:34vh;object-position:center top;clip-path:inset(0 0 13vh 0)}
  .about-content{grid-column:auto}
  .about-wordmark{width:312px;max-width:calc(100% - 36px);height:30px;object-fit:contain;object-position:left center;margin:0 0 10px 36px}
  .about-cards{display:grid;grid-template-columns:1fr;gap:16px}
  .about-card,.about-card.bio,.about-card.contact{grid-column:auto;grid-row:auto;padding:14px 16px;border-radius:20px}
  .about-card h2{margin-bottom:8px;font-size:11px}.about-card p{font-size:12px;line-height:1.12}.about-card p+p{margin-top:.78em}
  .about-card:not(.bio){padding:10px 16px}.about-card:not(.bio) p{font-size:11px;line-height:1.05}.about-card:not(.bio) p+p{margin-top:.65em}
  .journey-list{gap:2px}.journey-row{padding:4px 7px}.journey-row strong{font-size:11px}.journey-row span{font-size:10px}.journey-row small{font-size:8px}
  .about-email{font-size:18px}
}

@media (max-height:760px) and (min-width:768px){
  .panel-inner{padding-top:66px;padding-bottom:62px}
  .hero-panel .meta-row{margin-bottom:auto}
  .copy{line-height:1.3}
  .cards{margin-top:20px}
  .card{padding:16px}
  .card-media{margin-top:12px}
  .goal-list{gap:10px;margin-top:18px}
  .modes{margin-top:18px}
  .menu-trigger{width:54px;height:54px;padding:14px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .app-shell::before{animation:none}
}

@media (forced-colors:active){
  .rail-dot::before,.deck-progress{forced-color-adjust:auto}
}

/* 2026-09-05 annotation pass */
.baseline-mobile-fan,.mobile-gameplay-panel{display:none}
@media(max-width:767px){.escape{display:none!important}}
.live-flow[hidden]{display:none!important}

/* Desktop presentation for structures that become nested carousels on mobile. */
@media (min-width:768px){
.onboarding-research-carousel>.carousel-stage,
.performance-findings-carousel>.carousel-stage,
.slice-research-carousel>.carousel-stage,
.concept-carousel>.carousel-stage{position:static;width:100%}
.onboarding-research-carousel .carousel-viewport,
.performance-findings-carousel .carousel-viewport,
.slice-research-carousel .carousel-viewport,
.concept-carousel .carousel-viewport{overflow:visible}
.onboarding-research-carousel .carousel-track,
.performance-findings-carousel .carousel-track,
.slice-research-carousel .carousel-track,
.concept-carousel .carousel-track{transform:none!important;will-change:auto}
.onboarding-research-carousel .carousel-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.5vw,48px)}
.performance-findings-carousel .carousel-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.slice-research-carousel .carousel-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.concept-carousel .carousel-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px}
.onboarding-research-carousel .carousel-slide,
.performance-findings-carousel .carousel-slide,
.slice-research-carousel .carousel-slide,
.concept-carousel .carousel-slide{place-items:initial}
.onboarding-research-carousel .carousel-slide,
.slice-research-carousel .carousel-slide{display:flex}
.performance-findings-carousel .carousel-slide,
.concept-carousel .carousel-slide{display:block}
.onboarding-research-carousel .carousel-ui,
.performance-findings-carousel .carousel-ui,
.slice-research-carousel .carousel-ui,
.concept-carousel .carousel-ui{display:none}
}

/* Global menu spacing, white project icons, and true floating labels. */
.global-menu{padding:clamp(82px,10vh,122px) clamp(56px,7.5vw,144px);gap:clamp(76px,8vw,150px)}
.menu-close{width:68px;height:68px;font-size:54px}
.menu-nav{gap:24px}
.menu-work{margin-top:22px;gap:22px}
.menu-work img{filter:brightness(0) invert(1)}
.menu-work .menu-icon-camera{filter:none}
.menu-contact{gap:30px}
.contact-detail+.contact-detail{margin-top:8px}
.contact-form{gap:22px;margin-top:24px}
.menu-field{position:relative;display:block}
.menu-field .field-label{position:absolute;z-index:1;left:24px;top:50%;transform:translateY(-50%);pointer-events:none;transition:top var(--motion-fast),transform var(--motion-fast),font-size var(--motion-fast),color var(--motion-fast)}
.menu-field input{padding:22px 24px 6px}
.menu-field input:focus+.field-label,.menu-field input:not(:placeholder-shown)+.field-label{top:10px;transform:none;font-size:11px;color:#fff}

/* Camera desktop refinements. */
.workflow-copy{width:870px}
.workflow-copy>.performance-intro{max-width:825px}
.workflow-columns{grid-template-columns:414px 414px;gap:42px}
.workflow-table th:first-child,.workflow-table td:first-child{width:48%}
.workflow-fan{right:40px;top:178px;width:860px;height:700px}
#baseline>.panel-inner>.eyebrow{color:#fff;font:700 34px/1 var(--font-display)}
#baseline .modes{width:min(1360px,86vw)}
#baseline .mode img{height:min(57vh,610px)}
#baseline .actions{margin-top:42px}
#interactions .carousel-copy .copy{min-height:86px}
#interactions .carousel-viewport{border-radius:38px}
#interactions .carousel-slide video{object-fit:contain;border-radius:38px}
#sequences .carousel-slide video{object-fit:contain;background:#fff;cursor:zoom-in}
#feedback .feedback-intro strong{font-family:var(--font-display)}
#feedback .sfx-button{white-space:nowrap}
.has-video-fullscreen{overflow:hidden!important}
video.video-fullscreen-fallback{position:fixed!important;inset:0!important;z-index:120!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;background:#000!important;object-fit:contain!important;cursor:zoom-out!important}

/* Slice desktop media fidelity. */
body[data-project="slice"] .slice-research .card-media{grid-template-rows:1fr;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:18px;overflow:visible;background:transparent;border-radius:0}
body[data-project="slice"] .slice-research .card-media img,
body[data-project="slice"] .slice-research .research-slotomania img:first-child,
body[data-project="slice"] .slice-research .research-angry-birds img:first-child{grid-column:auto;width:100%;height:450px;object-fit:contain;background:transparent;border-radius:20px}
.slice-challenge-copy>p{font-weight:400}
.slice-challenge-copy>p strong{font-family:var(--font-display);font-weight:700}
.slice-challenge-reward{background:transparent}
.slice-challenge-reward{background:#20130f url("../assets/slice/challenge-reference.webp") right bottom/200% auto no-repeat}
.slice-challenge-reward img{display:none}

@media (min-width:1600px) and (max-height:1000px){
  .flow-deck .panel-inner{padding-top:64px;padding-bottom:28px}
  .flow-deck h2{font-size:38px}
  .flow-deck-carousel{margin-top:32px}
  .screen-batch{grid-template-columns:repeat(4,260px);gap:44px}
  .screen-batch-three,.screen-batch-two{grid-template-columns:repeat(3,260px)}
  .switch-row{grid-template-columns:repeat(4,260px)}
  .screen-batch-one{grid-template-columns:260px}
  .screen-batch img{width:260px!important;height:576px;border-radius:25px}
  .screen-batch figcaption{gap:6px;margin-top:9px}
  .screen-batch figcaption strong{font-size:20px}
  .screen-batch figcaption span{font-size:16px}
  .screen-batch figcaption small{font-size:13px}
  .flow-deck-carousel .carousel-dots{bottom:-18px}
  .flow-deck-link{min-height:50px;margin-top:25px}
  #workflow .panel-inner{padding-top:116px}
  #workflow .workflow-columns{margin-top:38px}
  #workflow .workflow-fan{top:150px}
  #baseline .mode img{height:min(49vh,500px)}
  #baseline .actions{margin-top:24px}
  #interactions .carousel-dots{bottom:12px}
  #sequences .carousel-dots{bottom:8px}
  body[data-project="slice"] .slice-research .card-media img,
  body[data-project="slice"] .slice-research .research-slotomania img:first-child,
  body[data-project="slice"] .slice-research .research-angry-birds img:first-child{height:380px}
  body[data-project="slice"] .slice-challenge-media{margin-top:58px}
  body[data-project="slice"] .slice-challenge-media>img,
  body[data-project="slice"] .slice-challenge-reward{height:min(34vh,330px)}
  #feedback .panel-grid{grid-template-columns:510px 790px;gap:86px}
  #feedback .feedback-table{font-size:16px}
  #feedback .feedback-table th,#feedback .feedback-table td{padding:10px 7px}
}

@media (max-width:767px){
  html,body.is-deck,.app-shell,.deck,.panel{height:100%;height:100dvh;overflow:hidden}
  .panel-inner{height:100%;overflow:hidden!important}

  /* Menu */
  .global-menu{padding:64px 20px 18px;gap:20px;overflow:hidden;align-content:start}
  .menu-close{left:16px;top:14px;width:48px;height:48px;font-size:40px}
  .menu-nav{gap:10px}
  .menu-nav>a{font-size:24px}
  .menu-work{margin-top:10px;gap:10px}
  .menu-work a{gap:11px;font-size:19px}
  .menu-work img{width:29px;height:29px}
  .menu-contact{gap:12px}
  .contact-detail+.contact-detail{margin-top:3px}
  .contact-detail span{font-size:10px}
  .contact-detail a{margin-top:3px;font-size:17px}
  .contact-form{gap:11px;margin-top:6px}
  .contact-form input{height:42px;padding:14px 14px 3px;font-size:13px;border-width:1px}
  .menu-field .field-label{left:14px;font-size:13px}
  .menu-field input:focus+.field-label,.menu-field input:not(:placeholder-shown)+.field-label{top:6px;font-size:8px}
  .contact-form button{height:44px;min-width:82px;font-size:13px;border-radius:14px}

  /* Intro copy and common nested-carousel controls */
  body[data-project="onboarding"] .hero-panel .hero-copy>.copy{font-size:13px;line-height:1.25}
  [data-mobile-carousel]>.carousel-stage{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0}
  [data-mobile-carousel] .carousel-viewport{overflow:hidden;min-height:0}
  [data-mobile-carousel] .carousel-track{display:flex;gap:0;margin:0;transform:translate3d(0,0,0)}
  [data-mobile-carousel] .carousel-slide{display:block;flex:0 0 100%;width:100%;height:100%}
  [data-mobile-carousel] .carousel-ui{display:flex;position:static;inset:auto;gap:14px;margin:12px 0 0;pointer-events:auto}
  [data-mobile-carousel] .carousel-dots{position:static;left:auto;bottom:auto;transform:none;margin:0}

  /* Onboarding challenge: media first, compact, and fully contained. */
  body[data-project="onboarding"] #challenge .panel-inner{padding:70px 16px 48px}
  body[data-project="onboarding"] #challenge .panel-grid{display:grid;grid-template-rows:188px minmax(0,1fr);gap:12px}
  body[data-project="onboarding"] #challenge .challenge-media{order:-1;width:84px;height:186px;aspect-ratio:auto;border-radius:18px;align-self:start}
  body[data-project="onboarding"] #challenge .panel-copy{min-height:0}
  body[data-project="onboarding"] #challenge .panel-copy>.eyebrow:first-child{margin-bottom:7px;font-size:14px}
  body[data-project="onboarding"] #challenge .challenge-statement{font-size:13px;line-height:1.2}
  body[data-project="onboarding"] #challenge .challenge-subhead{margin-top:12px;font-size:10px}
  body[data-project="onboarding"] #challenge .goal-list{gap:3px;margin-top:7px}
  body[data-project="onboarding"] #challenge .goal{grid-template-columns:28px 1fr;gap:5px;padding-top:5px}
  body[data-project="onboarding"] #challenge .goal>.number{font-size:13px}
  body[data-project="onboarding"] #challenge .goal>p{font-size:10px;line-height:1.25}
  body[data-project="onboarding"] #challenge .challenge-output{grid-template-columns:1fr 1fr;gap:10px;margin-top:7px}
  body[data-project="onboarding"] #challenge .challenge-output h3{font-size:12px}
  body[data-project="onboarding"] #challenge .challenge-output p{font-size:8px;line-height:1.2}

  /* Onboarding screen wall and user flow */
  #screens{overflow:hidden}
  #user-flow .panel-inner{padding:70px 0 44px}
  #user-flow .panel-inner>.eyebrow{padding-inline:16px;font-size:22px}
  #user-flow .tabs{width:calc(100% - 32px);margin:10px 16px 8px}
  #user-flow .tabs button{min-height:42px}
  #user-flow .flow-frame{width:100%;height:calc(100dvh - 178px);padding:0;overflow:hidden}
  .live-flow-frame{padding:0;overflow:hidden;scrollbar-gutter:auto}
  .live-flow{min-width:0;width:100%;height:100%}
  .live-flow picture,.live-flow img{width:100%;height:100%;object-fit:contain;object-position:center}

  /* Welcome and UP Switch: every source screen, two at a time. */
  .flow-deck .panel-inner{display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:66px 16px 28px}
  .flow-deck h2{font-size:25px;line-height:1.05}
  .flow-deck-carousel{width:100%;height:100%;margin:24px auto 0;min-height:0}
  .flow-deck-carousel .carousel-stage{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%}
  .flow-deck-carousel .carousel-viewport{min-height:0}
  .screen-batch,.screen-batch-two,.screen-batch-three,.switch-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
  .screen-batch figure:nth-child(3),.screen-batch figure:nth-child(4){display:grid}
  .screen-batch img{width:100%!important;height:auto;max-height:49vh!important;object-fit:contain!important;border-radius:17px}
  .screen-batch figcaption{gap:4px;margin-top:7px}
  .screen-batch figcaption strong{font-size:14px}.screen-batch figcaption span{font-size:10px;line-height:1.15}.screen-batch figcaption small{font-size:8px}
  .switch-row figure{padding-top:20px}.switch-row figure::before{font-size:10px}
  .flow-deck-carousel .carousel-ui{position:static;inset:auto;gap:14px;margin:10px 0 0;pointer-events:auto}
  .flow-deck-carousel .carousel-arrow{align-self:auto;width:38px;height:38px;font-size:21px}
  .flow-deck-carousel .carousel-dots{position:static;left:auto;bottom:auto;transform:none;max-width:210px}
  .flow-deck-link{align-self:end;margin:18px auto 0;min-width:220px;min-height:42px;font-size:12px}

  /* Onboarding research */
  body[data-project="onboarding"] #research .panel-inner{padding:70px 16px 42px}
  .onboarding-research-title{font-size:23px}
  .onboarding-research-headline{margin-top:10px;font-size:16px}
  .onboarding-research-intro{margin-top:8px;font-size:11px;line-height:1.25}
  .onboarding-research-carousel{height:470px;margin-top:14px}
  .onboarding-research-carousel .cards{display:flex;gap:0;margin:0}
  body[data-project="onboarding"] .onboarding-research-carousel .card{display:block;height:400px;padding:17px 16px;border-radius:24px}
  body[data-project="onboarding"] .onboarding-research-carousel .card>.eyebrow{font-size:11px}
  body[data-project="onboarding"] .onboarding-research-carousel .card h3{font-size:19px}
  body[data-project="onboarding"] .onboarding-research-carousel .card>p{font-size:12px;line-height:1.25}
  .research-principles{display:none}
  body[data-project="onboarding"] #research .actions{position:absolute;left:16px;right:16px;bottom:20px;margin:0}
  body[data-project="onboarding"] #research .deck-link{min-height:40px;font-size:11px}

  /* Camera challenge and performance */
  body[data-project="camera"] #challenge .panel-inner{padding:70px 16px 44px}
  body[data-project="camera"] #challenge .panel-grid{grid-template-rows:minmax(0,1fr) 236px;gap:12px}
  body[data-project="camera"] #challenge .camera-challenge-statement{font-size:15px;line-height:1.16;margin-top:10px}
  body[data-project="camera"] #challenge .camera-goals-label{margin-top:14px;font-size:11px}
  body[data-project="camera"] #challenge .goal-list{gap:8px;margin-top:10px}
  body[data-project="camera"] #challenge .goal{grid-template-columns:31px 1fr;gap:6px}
  body[data-project="camera"] #challenge .goal h3,body[data-project="camera"] #challenge .goal p{font-size:10px;line-height:1.15}
  body[data-project="camera"] #challenge .challenge-media{width:110px;height:234px;aspect-ratio:auto;border-radius:20px;align-self:end}

  #performance .panel-inner{padding:70px 16px 30px}
  #performance .performance-title{font-size:22px}
  #performance .performance-intro{font-size:12px;line-height:1.25;margin-top:8px}
  #performance .performance-tests{display:none}
  #performance .performance-kicker{font-size:12px;margin-top:14px}
  .performance-findings-carousel{height:540px;margin-top:8px}
  .performance-findings-carousel .comparison-grid{display:flex;gap:0;margin:0}
  #performance .performance-findings-carousel .comparison-card{height:475px;padding:17px;border-radius:24px}
  #performance .performance-findings-carousel .comparison-card>h3{font-size:24px}
  #performance .performance-findings-carousel .comparison-card>p{font-size:14px;line-height:1.2;margin:12px 0}
  #performance .performance-findings-carousel .comparison-card img{height:245px;object-fit:cover}
  #performance .performance-findings-carousel .comparison-card figcaption{font-size:11px}
  #performance .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
  #performance .deck-link{min-width:0;min-height:40px;padding:7px 8px;font-size:9px;line-height:1.15}

  /* Camera workflow and baseline */
  #workflow .panel-inner{padding:70px 16px 38px}
  #workflow .workflow-copy{width:100%}
  #workflow .workflow-copy>.performance-intro{font-size:13px;line-height:1.22}
  #workflow .workflow-columns{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
  #workflow .workflow-step{font-size:11px;line-height:1.25}
  #workflow .workflow-columns article>h3{font-size:11px;margin:15px 0 8px}
  #workflow .core-checklist{font-size:10px;gap:6px}
  #workflow .workflow-table,#workflow .workflow-fan{display:none}

  #baseline .panel-inner{padding:70px 16px 34px}
  #baseline>.panel-inner>.eyebrow{font-size:24px;line-height:1.05}
  #baseline .baseline-intro{font-size:12px;line-height:1.25;margin-top:10px}
  #baseline .modes{display:none}
  #baseline .baseline-mobile-fan{display:block;width:100%;height:52vh;margin-top:18px;object-fit:contain;border-radius:22px}
  #baseline .actions{margin-top:auto}
  #baseline .deck-link{min-height:42px;font-size:11px}

  /* Camera interactions: text, uncropped video, then global bottom controls. */
  #interactions .panel-inner{padding:70px 16px 32px}
  #interactions .interaction-heading{font-size:22px}
  #interactions .carousel-layout{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:calc(100dvh - 126px);margin-top:14px;padding:14px;border-radius:24px}
  #interactions .carousel-stage{display:contents}
  #interactions .carousel-copy{order:1;margin:0;padding:0}
  #interactions .carousel-copy .eyebrow{font-size:11px}
  #interactions .carousel-copy .title{font-size:23px}
  #interactions .carousel-copy .copy{min-height:52px;margin-top:8px;font-size:12px;line-height:1.2}
  #interactions .carousel-viewport{order:2;align-self:center;border-radius:24px}
  #interactions .carousel-slide video{width:100%;height:min(55vh,510px);object-fit:contain;border-radius:24px}
  #interactions .carousel-ui{order:3;position:static;inset:auto;display:flex;justify-content:center;gap:14px;margin:10px 0 0;pointer-events:auto}
  #interactions .carousel-arrow{align-self:auto;width:38px;height:38px}
  #interactions .carousel-dots{position:static;left:auto;bottom:auto;transform:none;margin:0;max-width:190px}

  /* Camera feedback, compact one-slide table. */
  #feedback .panel-inner{padding:66px 12px 24px}
  #feedback .panel-grid{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:8px;height:100%}
  #feedback .performance-title{font-size:20px}
  #feedback .feedback-intro{margin-top:6px;font-size:11px;line-height:1.2}
  #feedback .feedback-table{table-layout:fixed;width:100%;margin:0;font-size:9px;line-height:1.05}
  #feedback .feedback-table th{font-size:10px}
  #feedback .feedback-table th,#feedback .feedback-table td{padding:4px 3px;height:29px;vertical-align:middle}
  #feedback .feedback-table th:first-child,#feedback .feedback-table td:first-child{width:48%}
  #feedback .feedback-table th:nth-child(2),#feedback .feedback-table td:nth-child(2){width:18%}
  #feedback .feedback-table th:nth-child(3),#feedback .feedback-table td:nth-child(3){width:34%}
  #feedback .sfx-button{min-width:0;width:auto;max-width:100%;padding:4px 5px;white-space:nowrap;font-size:8px}
  #feedback .sfx-button::before{margin-right:3px}

  /* Slice research, challenge, concept split, and sequence media. */
  body[data-project="slice"] #research .panel-inner{padding:70px 16px 34px}
  body[data-project="slice"] #research .performance-title{font-size:22px}
  body[data-project="slice"] #research .research-intro{font-size:12px;line-height:1.22;margin-top:8px}
  .slice-research-carousel{height:690px;margin-top:14px}
  .slice-research-carousel .slice-research{display:flex;gap:0;margin:0}
  body[data-project="slice"] .slice-research-carousel .card{display:flex;height:620px;padding:16px;border-radius:24px}
  body[data-project="slice"] .slice-research-carousel .card>.eyebrow{font-size:12px}
  body[data-project="slice"] .slice-research-carousel .card>p{font-size:12px;line-height:1.22}
  body[data-project="slice"] .slice-research-carousel .card-media{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);height:410px;gap:10px;margin-top:auto}
  body[data-project="slice"] .slice-research-carousel .card-media img,
  body[data-project="slice"] .slice-research-carousel .research-slotomania img:first-child,
  body[data-project="slice"] .slice-research-carousel .research-angry-birds img:first-child{height:410px;object-fit:contain;border-radius:16px}

  body[data-project="slice"] #challenge .panel-inner{padding:70px 16px 32px}
  body[data-project="slice"] #challenge .slice-challenge-layout{grid-template-columns:1fr;gap:20px}
  body[data-project="slice"] #challenge .slice-challenge-copy>p{font-size:14px;line-height:1.25}
  body[data-project="slice"] #challenge .slice-challenge-goals ol{gap:11px;margin-top:10px}
  body[data-project="slice"] #challenge .slice-challenge-goals li{grid-template-columns:34px 1fr;gap:6px}
  body[data-project="slice"] #challenge .slice-challenge-goals li p{font-size:11px;line-height:1.2}
  body[data-project="slice"] #challenge .slice-challenge-media{display:none}

  #concept .panel-inner{padding:70px 16px 34px}
  #concept .performance-title{font-size:23px}
  .concept-carousel{height:calc(100dvh - 142px);margin-top:18px}
  .concept-carousel .concept-definitions{display:flex;gap:0;margin:0}
  .concept-carousel .concept-definitions .definition{display:block;height:calc(100dvh - 214px);min-height:0;padding:22px;border-radius:26px}
  .concept-carousel .concept-definitions .definition dt{font-size:16px}
  .concept-carousel .concept-definitions .definition dd{font-size:15px;line-height:1.35;margin-top:18px}
  .desktop-gameplay-loop{display:none}
  .mobile-gameplay-panel{display:block}
  .mobile-gameplay-panel .panel-inner{padding:70px 0 26px}
  .mobile-gameplay-panel .performance-title{padding:0 16px;font-size:23px}
  .mobile-gameplay-panel .concept-flow{width:100%;height:calc(100dvh - 112px);margin:8px 0 0;overflow:hidden}
  .mobile-gameplay-panel .concept-flow img{width:100%;height:100%;object-fit:contain}

  #sequences .panel-inner{padding:70px 16px 30px}
  #sequences .interaction-heading{font-size:22px}
  #sequences .carousel-layout{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:calc(100dvh - 126px);margin-top:14px;padding:14px;border-radius:24px}
  #sequences .carousel-stage{display:contents}
  #sequences .carousel-copy{order:1;margin:0;padding:0}
  #sequences .carousel-copy .eyebrow{font-size:11px}
  #sequences .carousel-copy .title{font-size:23px}
  #sequences .carousel-copy .copy{margin-top:7px;font-size:12px;line-height:1.2}
  #sequences .carousel-viewport{order:2;align-self:center;border-radius:18px;background:#fff}
  #sequences .carousel-slide video{width:100%;height:min(54vh,500px);object-fit:contain;border-radius:18px}
  #sequences .carousel-ui{order:3;position:static;inset:auto;display:flex;justify-content:center;gap:14px;margin:10px 0 0;pointer-events:auto}
  #sequences .carousel-arrow{align-self:auto;width:38px;height:38px}
  #sequences .carousel-dots{position:static;left:auto;bottom:auto;transform:none;margin:0;max-width:190px}
}

@media (max-width:767px) and (max-height:820px){
  body[data-project="slice"] #research .panel-inner{padding-top:62px;padding-bottom:16px}
  body[data-project="slice"] #research .performance-title{font-size:20px}
  body[data-project="slice"] #research .research-intro{font-size:11px;line-height:1.16;margin-top:5px}
  .slice-research-carousel{height:610px;margin-top:9px}
  body[data-project="slice"] .slice-research-carousel .card{height:540px;padding:13px}
  body[data-project="slice"] .slice-research-carousel .card>.eyebrow{font-size:10px}
  body[data-project="slice"] .slice-research-carousel .card>p{font-size:10px;line-height:1.16}
  body[data-project="slice"] .slice-research-carousel .card-media{height:330px;gap:8px}
  body[data-project="slice"] .slice-research-carousel .card-media img,
  body[data-project="slice"] .slice-research-carousel .research-slotomania img:first-child,
  body[data-project="slice"] .slice-research-carousel .research-angry-birds img:first-child{height:330px}
}

/* 2026-09-05 follow-up: stable responsive controls and uncropped media. */
.carousel-counter{display:block;min-width:78px;text-align:center;font:400 14px/1 var(--font-display);letter-spacing:.08em;color:var(--text-60)}
.carousel-dots{max-width:none}
body[data-project="onboarding"] #challenge .challenge-media video{object-fit:contain;background:#000}
body[data-project="camera"] #challenge .challenge-media video{object-fit:contain;background:#000}
.panel[aria-hidden="true"] .carousel-ui{visibility:hidden}
.screen-batch img{height:auto;object-fit:contain!important}
.screen-batch-five{grid-template-columns:repeat(5,minmax(0,240px));gap:28px}
.flow-deck-carousel .carousel-dots{bottom:-28px}
.flow-deck-link{margin-top:62px}

body.is-deck .escape{left:18px;top:16px;min-width:42px;width:42px;height:42px;padding:0;font-size:12px}
body.is-deck .menu-trigger{right:18px;top:16px;width:45px;height:45px;padding:11px}

#baseline .panel-inner{padding:72px 52px 38px}
#baseline .modes{width:min(1240px,82vw);margin-top:24px;gap:clamp(12px,1.5vw,26px)}
#baseline .mode img{height:min(48vh,480px);max-width:100%}
#baseline .mode{gap:8px}
#baseline .mode span{gap:5px}
#baseline .actions{margin-top:24px}

#feedback .haptic-grid{display:grid}
#feedback .haptic-tier{cursor:pointer}
#feedback .haptic-tier:hover{border-color:rgba(255,255,255,.62)}

@media (min-width:768px) and (max-width:1599px){
  .screen-batch-five{grid-template-columns:repeat(5,minmax(0,210px));gap:22px}
  #baseline .panel-inner{padding:68px 42px 34px}
  #baseline .mode img{height:min(46vh,450px)}
}

@media (min-width:1600px) and (max-height:1000px){
  .screen-batch-five{grid-template-columns:repeat(5,minmax(0,220px));gap:30px}
  .flow-deck-link{margin-top:48px}
  #baseline .panel-inner{padding:68px 52px 30px}
  #baseline .mode img{height:min(46vh,440px)}
  #feedback .haptic-grid{margin-top:20px;gap:10px}
  #feedback .haptic-tier{min-height:94px;padding:14px 18px}
  #feedback .haptic-tier span{margin-top:7px;font-size:14px}
}

@media (max-width:767px){
  body.is-deck .escape{left:8px;top:8px;min-width:36px;width:36px;height:36px;font-size:10px}
  body.is-deck .menu-trigger{right:8px;top:8px;width:40px;height:40px;padding:10px}
  .carousel-counter{min-width:66px;font-size:12px}
  .screen-batch-five{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .flow-deck-carousel .carousel-ui{margin-top:16px}
  .flow-deck-link{margin-top:22px}
  .flow-deck .panel-inner{grid-template-rows:auto auto auto;align-content:start}
  .flow-deck-carousel,.flow-deck-carousel .carousel-stage{height:auto}
  .flow-deck-link{align-self:center}
  #feedback .haptic-grid{display:none}
  #feedback .feedback-intro::after{content:" Large for main actions, medium for secondary actions, and small for micro-confirmations."}
  #baseline .panel-inner{padding:62px 16px 28px}
  body[data-project="onboarding"] #challenge .panel-inner{justify-content:flex-start}
  body[data-project="onboarding"] #challenge .panel-grid{grid-template-rows:min(36vh,336px) minmax(0,1fr)}
  body[data-project="onboarding"] #challenge .challenge-media{width:min(35vw,150px);height:auto;aspect-ratio:978/2176;align-self:start}
}

/* 2026-09-05 follow-up 2: shared navigation, asterisk rails, and regression repairs. */
.hero-project-nav{display:flex;align-items:center;gap:18px;margin-top:28px}
.hero-project-nav button{width:42px;height:42px;padding:11px;border:1px solid rgba(255,255,255,.72);border-radius:4px;background:rgba(0,0,0,.24)}
.hero-project-nav button:disabled{opacity:.25;cursor:default}
.hero-project-nav img{display:block;width:100%;height:100%;object-fit:contain}
.carousel-dots{gap:4px;flex-wrap:nowrap}
.carousel-dot.material-asterisk{display:grid;place-items:center;width:18px;height:22px;padding:0;border:0;border-radius:0;background:transparent;color:rgba(255,255,255,.3);font:400 17px/1 var(--font-display);transform:none}
.carousel-dot.material-asterisk[aria-current="true"]{background:transparent;color:var(--project-accent,var(--brand));transform:none}
.carousel-counter{display:none!important}
.orientation-toggle{display:none;min-height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.72);border-radius:4px;background:rgba(0,0,0,.25);font:400 11px/1 var(--font-display)}

/* Slice desktop: full media, consistent cards, and two authored views. */
@media (min-width:768px){
  body[data-project="slice"] #research .panel-inner{padding-top:86px;padding-bottom:42px}
  body[data-project="slice"] .slice-research-carousel{margin-top:34px}
  body[data-project="slice"] .slice-research{align-items:stretch;gap:24px}
  body[data-project="slice"] .slice-research .card{display:flex;flex-direction:column;min-width:0;height:100%;padding:22px;border-radius:26px;overflow:hidden}
  body[data-project="slice"] .slice-research .card-media{display:flex;align-items:center;justify-content:center;gap:14px;height:min(45vh,430px);margin-top:auto;padding-top:22px}
  body[data-project="slice"] .slice-research .card-media img,
  body[data-project="slice"] .slice-research .research-slotomania img:first-child,
  body[data-project="slice"] .slice-research .research-angry-birds img:first-child{flex:1 1 0;width:min(100%,240px);height:100%;min-width:0;max-width:100%;object-fit:contain!important;border-radius:16px;background:transparent}
  body[data-project="slice"] .research-board-kings img{max-width:46%}
  body[data-project="slice"] .slice-challenge-media{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:30px;margin-top:48px}
  body[data-project="slice"] .slice-challenge-media>img,
  body[data-project="slice"] .slice-challenge-reward{width:100%;height:min(37vh,390px);aspect-ratio:auto;object-fit:contain!important;border-radius:24px;background:transparent!important;overflow:hidden}
  body[data-project="slice"] .slice-challenge-reward{background:#20130f url("../assets/slice/challenge-reference.webp") right bottom/260% auto no-repeat!important}
  body[data-project="slice"] .slice-challenge-reward img{display:none!important}
  #concept .panel-inner.concept-tabs{padding-top:82px;padding-bottom:34px}
  .concept-view-tabs{margin-top:20px}
  .concept-live-view{width:100%;min-height:0;margin-top:22px}
  .concept-live-view[hidden]{display:none!important}
  .concept-live-view .concept-carousel{margin-top:0}
  .concept-live-view .concept-flow{height:min(67vh,650px);margin-top:0}
  #sequences .carousel-layout{height:min(76vh,760px);margin-top:38px;padding:30px 36px 34px;grid-template-rows:136px minmax(0,1fr)}
  #sequences .carousel-copy .copy{margin-top:14px}
  #sequences .carousel-viewport{background:transparent;border-radius:0}
  #sequences .carousel-slide video{height:min(53vh,530px);background:transparent!important;border-radius:0}
  #sequences .carousel-ui{inset:0 max(-110px,calc((100vw - 100%)/-2 + 18px))}
  #interface .interface-details{grid-template-rows:auto auto auto;gap:20px}
  #interface .interface-lobby figcaption{margin-top:8px}
  #interface .interface-rewards img,#interface .interface-cta img{background:transparent!important;padding:0}
  #interface .disclaimer{position:static;max-width:620px;margin-top:4px;font-size:11px;line-height:1.45}
}

@media (max-width:767px){
  .hero-project-nav{justify-content:center;gap:24px;margin-top:18px}
  .hero-project-nav button{width:38px;height:38px;padding:10px}
  [data-carousel] .carousel-slide{justify-items:center}
  [data-mobile-carousel] .carousel-track{gap:0!important}
  [data-carousel] .carousel-ui{display:flex;align-items:center;justify-content:center;gap:24px!important}
  [data-carousel] .carousel-dots{position:static!important;inset:auto!important;transform:none!important;margin:0!important;min-width:52px;max-width:min(48vw,210px)!important}
  [data-carousel] .carousel-arrow{position:static!important;inset:auto!important;transform:none!important;flex:0 0 auto}

  body[data-project="onboarding"] #challenge .panel-grid{grid-template-rows:auto minmax(0,1fr);gap:14px}
  body[data-project="onboarding"] #challenge .panel-copy{order:1}
  body[data-project="onboarding"] #challenge .challenge-media{order:2;width:auto;height:min(31dvh,290px);aspect-ratio:978/2176;justify-self:center;align-self:center}
  body[data-project="onboarding"] #challenge .challenge-media video{width:100%;height:100%;object-fit:contain}
  body[data-project="onboarding"] #research .actions{display:flex;justify-content:center;width:100%}

  body[data-project="camera"] #challenge .panel-grid{grid-template-rows:auto minmax(0,1fr);gap:14px}
  body[data-project="camera"] #challenge .challenge-media{width:auto;height:min(40dvh,370px);aspect-ratio:404/860;justify-self:center;align-self:center}
  #performance .performance-findings-carousel{height:min(61dvh,520px);margin-top:10px}
  #performance .performance-findings-carousel .comparison-card{height:min(53dvh,450px);padding:14px;border-radius:22px}
  #performance .performance-findings-carousel .comparison-card>h3{font-size:20px}
  #performance .performance-findings-carousel .comparison-card>p{font-size:12px;line-height:1.18;margin:8px 0}
  #performance .performance-findings-carousel .comparison-card img{height:min(24dvh,205px);object-fit:contain!important;border-radius:12px}
  #workflow .workflow-columns{grid-template-columns:1fr!important;gap:18px!important}

  #interactions .carousel-layout{height:calc(100dvh - 116px);margin-top:10px;padding:0;background:transparent;border-radius:0;grid-template-rows:auto minmax(0,1fr) auto}
  #interactions .carousel-copy{order:1;margin:0}
  #interactions .carousel-stage{display:contents}
  #interactions .carousel-viewport{order:2;align-self:center;border-radius:0;background:transparent;overflow:hidden}
  #interactions .carousel-slide video{width:100%;height:min(58dvh,535px);object-fit:contain!important;border-radius:0;background:transparent}
  #interactions .carousel-ui{order:3;margin:10px 0 0}

  body[data-project="slice"] #research .panel-inner{overflow:hidden;padding:64px 16px 22px}
  body[data-project="slice"] #research .research-intro{margin-top:6px}
  .slice-research-carousel{height:calc(100dvh - 170px);margin-top:10px}
  body[data-project="slice"] .slice-research-carousel .card{height:calc(100dvh - 238px);padding:14px;border-radius:22px}
  body[data-project="slice"] .slice-research-carousel .card>p{margin-top:8px;line-height:1.18}
  body[data-project="slice"] .slice-research-carousel .card-media{height:min(39dvh,360px);gap:8px;padding-top:10px}
  body[data-project="slice"] .slice-research-carousel .card-media img,
  body[data-project="slice"] .slice-research-carousel .research-slotomania img:first-child,
  body[data-project="slice"] .slice-research-carousel .research-angry-birds img:first-child{height:100%;object-fit:contain!important;border-radius:14px}

  #concept .panel-inner.concept-tabs{padding:62px 16px 24px;overflow:hidden}
  .concept-view-tabs{margin-top:12px}
  .concept-live-view{width:100%;min-height:0;margin-top:12px}
  .concept-live-view[hidden]{display:none!important}
  .concept-carousel{height:calc(100dvh - 180px);margin-top:0}
  .concept-carousel .concept-definitions .definition{height:calc(100dvh - 250px);min-height:0!important}
  .concept-live-view .concept-flow{width:100%;height:calc(100dvh - 170px);margin:0;overflow:hidden}
  .concept-live-view .concept-flow img{width:100%;height:100%;object-fit:contain}

  #sequences .panel-inner{padding:62px 14px 18px}
  #sequences .carousel-layout{height:calc(100dvh - 126px);margin-top:10px;padding:12px 12px 54px;background:transparent;border-radius:0;grid-template-rows:auto auto auto;align-content:start}
  #sequences .carousel-viewport{background:transparent!important;border-radius:0}
  #sequences .carousel-viewport{margin-top:24px}
  #sequences .carousel-slide video{height:auto;max-height:min(50dvh,465px);background:transparent!important;border-radius:0}
  #sequences .carousel-ui{margin-top:24px}
  #sequences .orientation-toggle{display:block;position:absolute;right:14px;bottom:8px;z-index:84}

  #interface .interface-rewards,#interface .interface-cta{display:none}
  #interface .interface-lower{display:none}
  #interface .interface-details{gap:12px}
  #interface .interface-lobby figcaption{margin-top:6px}
  #interface .disclaimer{position:static;margin-top:8px;font-size:8px;line-height:1.35}
}

@media (max-width:767px) and (orientation:portrait){
  html body.is-deck.forced-landscape .app-shell{position:fixed;top:0;left:100vw;width:100vh!important;height:100vw!important;transform-origin:top left;transform:rotate(90deg)}
  html body.is-deck.forced-landscape .deck,html body.is-deck.forced-landscape .deck>.panel{width:100vh!important;height:100vw!important;flex-basis:100vh!important}
  body.forced-landscape #sequences .panel-inner{padding:42px 52px 12px}
  body.forced-landscape #sequences .interaction-heading{font-size:20px}
  body.forced-landscape #sequences .carousel-layout{grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);grid-template-rows:minmax(0,1fr) auto;column-gap:22px;width:100%;height:calc(100dvw - 58px);margin-top:4px;padding:10px}
  body.forced-landscape #sequences .carousel-copy{grid-column:1;grid-row:1;align-self:center}
  body.forced-landscape #sequences .carousel-stage{display:contents}
  body.forced-landscape #sequences .carousel-viewport{grid-column:2;grid-row:1;align-self:center;margin-top:0}
  body.forced-landscape #sequences .carousel-slide video{height:min(62dvw,380px);width:100%;object-fit:contain}
  body.forced-landscape #sequences .carousel-ui{position:static;inset:auto;grid-column:1/-1;grid-row:2;height:42px;margin-top:6px;justify-content:center;gap:24px;pointer-events:auto}
  body.forced-landscape #sequences .carousel-arrow{width:38px;height:38px;align-self:center}
  body.forced-landscape #sequences .carousel-dots{position:static;inset:auto;transform:none;margin:0}
}

@media (max-height:767px) and (orientation:landscape){
  .panel:not(.hero-panel)>.panel-inner{overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none;touch-action:pan-y}
  .panel:not(.hero-panel)>.panel-inner::-webkit-scrollbar{display:none}
  #sequences>.panel-inner{overflow:hidden}
  #sequences .panel-inner{padding:48px 54px 14px}
  #sequences .interaction-heading{font-size:20px}
  #sequences .carousel-layout{grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);grid-template-rows:minmax(0,1fr) auto;column-gap:22px;width:100%;height:calc(100dvh - 68px);margin-top:4px;padding:10px}
  #sequences .carousel-copy{grid-column:1;grid-row:1;align-self:center}
  #sequences .carousel-stage{display:contents}
  #sequences .carousel-viewport{grid-column:2;grid-row:1;align-self:center}
  #sequences .carousel-slide video{height:min(62dvh,380px)}
  #sequences .carousel-ui{position:static;inset:auto;grid-column:1/-1;grid-row:2;height:42px;margin-top:6px;justify-content:center;gap:24px;pointer-events:auto}
  #sequences .carousel-arrow{width:38px;height:38px;align-self:center}
  #sequences .carousel-dots{position:static;inset:auto;transform:none;margin:0}
  #sequences .orientation-toggle{display:block;position:absolute;right:8px;bottom:8px}
}
