/* Large displays extend the desktop composition, never the mobile layout.
   One length unit scales the 1920 x 1080 reference, bounded by available height.
   CSS viewport pixels are intentional: OS/browser scaling is respected. */
@media (min-width:1921px) {
 :root{
  --large-unit:clamp(1px,min(.052083333vw,.092592593dvh),1.5px);
  --fs-hero:calc(48 * var(--large-unit));--fs-panel:calc(32 * var(--large-unit));
  --fs-section:calc(24 * var(--large-unit));--fs-card:calc(20 * var(--large-unit));
  --fs-body:calc(20 * var(--large-unit));--fs-small:calc(14 * var(--large-unit));
  --fs-eye:calc(16 * var(--large-unit));--fs-meta:calc(20 * var(--large-unit));--fs-micro:calc(12 * var(--large-unit));
  --editorial-inset:calc(178 * var(--large-unit));--edge:calc(48 * var(--large-unit));
 }
 /* Home: remove the narrow portrait cap relative to tall 2K/4K viewports. */
 .home-intro{--portrait-width:min(72.6vw,calc(1232 * var(--large-unit)));--portrait-height:110dvh;--portrait-bottom:-8dvh}
 .home-identity{width:calc(620 * var(--large-unit));gap:calc(12 * var(--large-unit))}
 .home-wordmark{width:calc(520 * var(--large-unit))}.home-tagline{font-size:calc(20 * var(--large-unit))}
 .home-nav{top:calc(41 * var(--large-unit));gap:calc(45 * var(--large-unit))}
 .home-tile{--size:calc(102 * var(--large-unit));border-radius:calc(27 * var(--large-unit))}
 .home-tile.is-active{--size:calc(135 * var(--large-unit));border-radius:calc(36 * var(--large-unit))}
 .home-hint{bottom:calc(70 * var(--large-unit));gap:calc(8 * var(--large-unit));font-size:calc(16 * var(--large-unit))}
 .home-hint .keycap{height:calc(26 * var(--large-unit));min-width:calc(26 * var(--large-unit))}
 .home-project-copy{left:calc(100 * var(--large-unit));bottom:calc(92 * var(--large-unit));gap:calc(10 * var(--large-unit))}
 .home-project-action{right:calc(100 * var(--large-unit));bottom:calc(92 * var(--large-unit));max-width:calc(520 * var(--large-unit));gap:calc(34 * var(--large-unit))}

 /* Preserve a readable desktop canvas and its fixed chrome at each scale. */
 .panel-inner{width:min(100%,calc(1920 * var(--large-unit)))}
 body.is-deck{--chrome-edge:calc(16 * var(--large-unit));--section-top:calc(82 * var(--large-unit));--section-bottom:calc(64 * var(--large-unit));--section-side:calc(80 * var(--large-unit))}
 body.is-deck .section-heading{left:calc(72 * var(--large-unit));right:calc(72 * var(--large-unit));min-height:calc(44 * var(--large-unit));font-size:var(--fs-panel)!important}
 .menu-trigger{width:calc(54 * var(--large-unit));height:calc(54 * var(--large-unit));padding:calc(14 * var(--large-unit))}
 .escape{width:calc(42 * var(--large-unit));height:calc(42 * var(--large-unit));font-size:calc(12 * var(--large-unit))}
 body.is-deck .section-rail{gap:calc(9 * var(--large-unit));height:calc(24 * var(--large-unit))}
 .section-layout>.performance-intro,.section-layout>.research-intro,.section-layout>.interface-intro,.section-layout>.baseline-intro,.onboarding-research-intro{max-width:calc(1200 * var(--large-unit))!important;font-size:calc(21 * var(--large-unit))!important;margin-bottom:calc(20 * var(--large-unit))!important}
 .tabs{padding:calc(4 * var(--large-unit));gap:calc(6 * var(--large-unit));margin-bottom:calc(20 * var(--large-unit))!important}
 .tabs button{min-height:calc(38 * var(--large-unit));padding-inline:calc(20 * var(--large-unit));font-size:calc(12 * var(--large-unit))}
 #user-flow .tabs{width:calc(460 * var(--large-unit))}#user-flow .tabs button{font-size:calc(16 * var(--large-unit));min-height:calc(52 * var(--large-unit))}
 .hero-panel .hero-copy{width:min(48vw,calc(610 * var(--large-unit)))}
 .hero-panel.camera-hero .hero-copy{width:min(58vw,calc(790 * var(--large-unit)))}
 .hero-panel .hero-copy>.copy{max-width:calc(640 * var(--large-unit));margin-top:calc(18 * var(--large-unit))}
 .hero-panel .hero-nav-tip{font-size:calc(16 * var(--large-unit))}
 .hero-panel .meta-row{top:calc(56 * var(--large-unit))}
 .hero-panel.onboarding-hero .hero-art{width:min(38.45vw,calc(738 * var(--large-unit)))}
 .slice-hero-art{width:min(50vw,calc(960 * var(--large-unit)))}
 .panel-copy{max-width:calc(650 * var(--large-unit))}
 body[data-project="onboarding"] #challenge .panel-grid{grid-template-columns:minmax(0,calc(520 * var(--large-unit))) minmax(0,calc(320 * var(--large-unit)));gap:calc(112 * var(--large-unit))}
 body[data-project="camera"] #challenge .panel-grid{grid-template-columns:minmax(0,calc(680 * var(--large-unit))) minmax(0,calc(340 * var(--large-unit)));gap:calc(110 * var(--large-unit))}
 body[data-project] #challenge .challenge-media{height:min(calc(100dvh - var(--section-top) - var(--section-bottom)),calc(680 * var(--large-unit)))}
 .challenge-statement,.camera-challenge-statement{font-size:calc(28 * var(--large-unit));max-width:none}
 body[data-project] #challenge .panel-copy{max-width:none}
 body[data-project="camera"] #challenge .goal{grid-template-columns:calc(48 * var(--large-unit)) minmax(0,1fr);gap:calc(18 * var(--large-unit))}
 #user-flow .flow-frame{height:calc(650 * var(--large-unit));max-height:100%}
 #switch-flow{max-width:calc(1600 * var(--large-unit))}
 #workflow .core-checklist{font-size:calc(16 * var(--large-unit));gap:calc(9 * var(--large-unit))}
 #workflow .workflow-step h3{font-size:calc(20 * var(--large-unit))}
 .challenge-subhead,.camera-goals-label{font-size:calc(20 * var(--large-unit));margin-top:calc(30 * var(--large-unit))}
 .goal-list{gap:calc(22 * var(--large-unit))}.goal{grid-template-columns:calc(42 * var(--large-unit)) 1fr;gap:calc(18 * var(--large-unit))}
 body[data-project="camera"] #challenge .goal h3,body[data-project="camera"] #challenge .goal p,.goal>p{font-size:calc(19 * var(--large-unit))}
 .challenge-output h3{font-size:calc(20 * var(--large-unit))}.challenge-output p{font-size:calc(14 * var(--large-unit))}
 .challenge-output{gap:calc(24 * var(--large-unit));margin-top:calc(24 * var(--large-unit))}

 /* Carousels retain their authored desktop groups and constant phone scale. */
 .screen-batch figure{width:min(16vw,calc((100dvh - 310 * var(--large-unit)) * .45),calc(250 * var(--large-unit)));padding-top:calc(24 * var(--large-unit))}
 .screen-batch,.screen-batch-five,.switch-row{gap:calc(36 * var(--large-unit))}
 .authored-switch-page{gap:calc(144 * var(--large-unit))}
 .screen-group-title{font-size:calc(16 * var(--large-unit));margin-bottom:calc(20 * var(--large-unit))}
 .switch-row figure::before{font-size:calc(13 * var(--large-unit))}
 .screen-batch figcaption strong{font-size:calc(18 * var(--large-unit))}.screen-batch figcaption span{font-size:calc(14 * var(--large-unit))}
 .flow-deck-carousel .carousel-stage{gap:calc(18 * var(--large-unit))}
 .carousel-layout .carousel-arrow,.flow-deck-carousel .carousel-arrow{width:calc(42 * var(--large-unit));height:calc(42 * var(--large-unit))}
 .carousel-arrow>span{font-size:calc(26 * var(--large-unit))}
 .carousel-dot.material-asterisk{width:calc(18 * var(--large-unit));height:calc(22 * var(--large-unit))}
 .carousel-dot.material-asterisk svg{width:calc(18 * var(--large-unit));height:calc(18 * var(--large-unit))}
 .flow-deck-link,#performance .deck-link,#baseline .deck-link{font-size:calc(17 * var(--large-unit));min-height:calc(46 * var(--large-unit));padding:calc(12 * var(--large-unit)) calc(24 * var(--large-unit))}
 .flow-deck-link{margin-top:calc(18 * var(--large-unit))!important}

 /* Text-led research stays content-height; the larger screen is not empty padding. */
 body[data-project="onboarding"] #research .onboarding-research-headline{font-size:calc(26 * var(--large-unit))}
 body[data-project="onboarding"] #research .card{padding:calc(22 * var(--large-unit))}
 body[data-project="onboarding"] #research .card>.eyebrow,body[data-project="onboarding"] #research .card h4{font-size:calc(15 * var(--large-unit))}
 body[data-project="onboarding"] #research .card h3{font-size:calc(23 * var(--large-unit))}
 body[data-project="onboarding"] #research .card>p{font-size:calc(17 * var(--large-unit))}
 body[data-project="slice"] .slice-research .card{padding:calc(20 * var(--large-unit));gap:calc(12 * var(--large-unit))}
 body[data-project="slice"] .slice-research .card>.eyebrow{font-size:calc(22 * var(--large-unit))}
 body[data-project="slice"] .slice-research .card>p{font-size:calc(18 * var(--large-unit))}
 body[data-project="slice"] #challenge .slice-challenge-copy>p{font-size:calc(20 * var(--large-unit))}
 body[data-project="slice"] #challenge .slice-challenge-goals li p{font-size:calc(19 * var(--large-unit))}
 body[data-project="slice"] #challenge .slice-challenge-goals ol{gap:calc(18 * var(--large-unit))}
 #concept .concept-definitions .definition{padding:calc(24 * var(--large-unit))}
 #concept .concept-definitions .definition dt{font-size:calc(18 * var(--large-unit))}
 #concept .concept-definitions .definition dd{font-size:calc(17 * var(--large-unit));margin-top:calc(12 * var(--large-unit))}
 #performance .performance-tests h3,#performance .comparison-card>h3{font-size:calc(27 * var(--large-unit))}
 #performance .performance-tests p{font-size:calc(19 * var(--large-unit))}
 #performance .performance-kicker{font-size:calc(17 * var(--large-unit));margin:calc(22 * var(--large-unit)) 0 calc(12 * var(--large-unit))}
 #performance .comparison-card{padding:calc(18 * var(--large-unit))}
 #performance .comparison-card>p{font-size:calc(18 * var(--large-unit));margin:calc(10 * var(--large-unit)) 0 calc(14 * var(--large-unit))}
 #performance .comparison-card img{height:calc(140 * var(--large-unit))}
 #performance .comparison-card figcaption{font-size:calc(14 * var(--large-unit))}
 #workflow .workflow-step{font-size:calc(17 * var(--large-unit))}
 #workflow .workflow-columns{gap:calc(30 * var(--large-unit));margin-top:calc(24 * var(--large-unit))}
 #workflow .workflow-table{font-size:calc(20 * var(--large-unit))}.excluded-modes{font-size:calc(14 * var(--large-unit))}
 #workflow .workflow-fan{top:calc(110 * var(--large-unit));height:calc(100% - 180 * var(--large-unit))}
 #baseline .modes{width:min(100%,calc(1450 * var(--large-unit)))}
 #baseline .mode span b{font-size:calc(20 * var(--large-unit))}
 #baseline .mode .mode-media img{border-radius:calc(24 * var(--large-unit))}
 #interactions .carousel-layout{width:min(100%,calc(980 * var(--large-unit)));gap:calc(20 * var(--large-unit))}
 #interactions .interaction-content{padding:calc(24 * var(--large-unit));gap:calc(28 * var(--large-unit))}
 #interactions .carousel-copy .copy{font-size:calc(18 * var(--large-unit));max-width:calc(410 * var(--large-unit))}
 body[data-project="slice"] #challenge .slice-challenge-copy>p{max-width:calc(890 * var(--large-unit))}
 #interface .interface-main img{max-height:calc(610 * var(--large-unit))}
 #interface .interface-lobby img{height:calc(300 * var(--large-unit))}
 #interface .interface-rewards img,#interface .interface-cta img{height:calc(100 * var(--large-unit))}
 #interface .interface-showcase figcaption{font-size:calc(16 * var(--large-unit))}
 .dp-slide img{width:100%;height:100%;border:0;background:transparent}
 #interactions .interaction-content .carousel-copy{transform:translateY(calc(24 * var(--large-unit)))}
 #sequences .carousel-layout{height:min(100%,calc(700 * var(--large-unit)));margin:auto 0;padding:calc(28 * var(--large-unit));gap:calc(20 * var(--large-unit)) calc(32 * var(--large-unit))}
 #sequences .carousel-copy .title{font-size:calc(30 * var(--large-unit))}
 #sequences .carousel-copy .copy{font-size:calc(17 * var(--large-unit))}
 #feedback .panel-grid{grid-template-columns:calc(620 * var(--large-unit)) calc(752 * var(--large-unit));gap:calc(118 * var(--large-unit))}
 #feedback .feedback-intro,#feedback .feedback-table{font-size:calc(20 * var(--large-unit))}
 #feedback .feedback-table th{font-size:calc(24 * var(--large-unit))}
 #feedback .feedback-table :is(th,td){padding:calc(15 * var(--large-unit)) calc(8 * var(--large-unit))}
 #feedback .haptic-tier{padding:calc(26 * var(--large-unit)) calc(24 * var(--large-unit));min-height:calc(138 * var(--large-unit))}
 #interface .disclaimer{max-width:calc(620 * var(--large-unit));font-size:calc(11 * var(--large-unit))}

 .about-layout{width:min(100%,calc(1920 * var(--large-unit)))}
 .about-content{width:min(100%,calc(1040 * var(--large-unit)))}
 .about-wordmark{width:calc(410 * var(--large-unit));margin-bottom:calc(28 * var(--large-unit))}
 .about-card{padding:calc(24 * var(--large-unit)) calc(28 * var(--large-unit))}
 .about-card p,.journey-row strong{font-size:calc(16 * var(--large-unit))}.journey-row span{font-size:calc(15 * var(--large-unit))}
 .global-menu{grid-template-columns:minmax(0,calc(500 * var(--large-unit))) minmax(0,calc(560 * var(--large-unit)));gap:calc(112 * var(--large-unit))}
 .menu-nav>a{font-size:calc(58 * var(--large-unit))}.menu-work a{font-size:calc(34 * var(--large-unit))}
 .menu-contact{width:min(100%,calc(560 * var(--large-unit)))}
 .contact-form input{height:calc(72 * var(--large-unit));font-size:calc(24 * var(--large-unit))}
 .contact-form button{height:calc(54 * var(--large-unit));min-width:calc(104 * var(--large-unit))}
 /* Handoff art already fits the viewport: enlarge only its navigation chrome. */
 .dp-top{top:calc(38 * var(--large-unit));left:calc(40 * var(--large-unit));right:calc(40 * var(--large-unit))}
 .dp-stage{inset:calc(96 * var(--large-unit)) calc(134 * var(--large-unit)) calc(102 * var(--large-unit))}
 .dp-esc,.dp-arrow{width:calc(59 * var(--large-unit));height:calc(59 * var(--large-unit));font-size:calc(26 * var(--large-unit))}
 .dp-esc{font-size:calc(16 * var(--large-unit))}.dp-prev{left:calc(40 * var(--large-unit))}.dp-next{right:calc(40 * var(--large-unit))}
 .dp-btn{min-width:calc(59 * var(--large-unit));height:calc(46 * var(--large-unit));font-size:calc(12 * var(--large-unit))}
 .dp-ctrls{bottom:calc(36 * var(--large-unit));gap:calc(22 * var(--large-unit))}
 .dp-asterisk{width:calc(15 * var(--large-unit));height:calc(15 * var(--large-unit))}
}
/* UHD/4K gets its own range; typography never depends on device pixel ratio. */
@media (min-width:3200px) {
 :root{--large-unit:clamp(1px,min(.052083333vw,.092592593dvh),2.25px)}
}
