/* Approved homepage layout. Shared palette lives in /assets/theme.css. */
* {box-sizing:border-box}
html {scroll-behavior:smooth; scroll-padding-top:24px}
body {margin:0; min-width:280px; background:radial-gradient(ellipse at 12% 25%,var(--body-glow) 0,transparent 48%),var(--background)}
button,a {-webkit-tap-highlight-color:transparent}
a {color:inherit; text-decoration:none}
button {font:inherit; color:inherit; cursor:pointer}
button,a {touch-action:manipulation}
a:focus-visible,button:focus-visible {outline:3px solid var(--focus); outline-offset:6px}
button:disabled {cursor:default}
button[hidden],[hidden] {display:none!important}
.sr-only {position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.skip {position:absolute; top:12px; left:20px; z-index:20; padding:14px 20px; background:var(--ink); color:var(--background); transform:translateY(-180%)}
.skip:focus {transform:none}
.masthead {height:92px; max-width:1560px; padding:0 5%; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:32px}
.wordmark {font-family:var(--font-display); font-size:22px; letter-spacing:-1.15px; font-weight:500; display:inline-flex; align-items:center; min-height:44px; white-space:nowrap}
.wordmark span {font-weight:400; margin-left:4px}
.masthead nav {display:flex; gap:32px; align-items:center; font-size:14px; color:var(--secondary)}
.masthead nav a {min-height:44px; display:inline-flex; align-items:center; gap:10px; transition:color 180ms}
.masthead nav a:hover {color:var(--accent-hover)}
.masthead nav a:last-child {color:var(--ink)}
main {max-width:1560px; margin:0 auto; padding:0 24px}
.hero {border-radius:38px; border:1px solid var(--hero-border); position:relative; overflow:hidden; background:var(--panel); box-shadow:0 30px 100px var(--hero-shadow)}
.intro {display:grid; grid-template-columns:46% 54%; align-items:center; min-height:clamp(540px,calc(100svh - 270px),740px); padding:38px 4.2% 20px; gap:0; position:relative}
.intro-copy {position:relative; z-index:2; padding:32px 0 36px}
.eyebrow {font-size:11px; line-height:1.6; letter-spacing:.13em; font-weight:600; text-transform:uppercase; margin:0 0 28px; color:var(--accent)}
.little-sun {font-size:21px; line-height:1; display:inline-block; vertical-align:-2px; margin-right:9px; font-weight:400}
h1 {font-family:var(--font-display); font-weight:500; font-size:clamp(42px,4.15vw,64px); line-height:1.13; letter-spacing:-.058em; margin:0 0 28px}
h1>span {display:block; white-space:nowrap}
h1 .headline-accent {color:var(--headline)}
.lead {font-size:17px; line-height:1.65; color:var(--secondary); max-width:390px; margin:0 0 30px}
.primary-link {min-height:54px; display:inline-flex; align-items:center; gap:29px; padding:14px 23px; border-radius:999px; background:var(--button-bg); color:#262a2b; font-size:14px; font-weight:600; box-shadow:0 5px 24px #e4936e17; transition:background-color 320ms,box-shadow 320ms}
.arrow {font-size:22px; line-height:1}
.quiet-intro {font-size:12px; margin:18px 0 0; color:var(--secondary)}
.workbench {position:relative; min-width:0; margin:18px -2% 0 0; z-index:1; align-self:center}
.scene {position:relative; isolation:isolate; margin:-20px -5% 0 -5%; aspect-ratio:1.35; display:flex; align-items:center}
/* The environment stays still. Only the three transparent object layers move. */
.scene-depth {position:relative; width:100%; aspect-ratio:1.5}
.scene-base {position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; opacity:.91; filter:saturate(.9) brightness(.95); -webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 26%,#000 82%,transparent); mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 26%,#000 82%,transparent); -webkit-mask-composite:source-in; mask-composite:intersect}
.scene-atmosphere {position:absolute; inset:0 -6% -4%; z-index:-1; background:radial-gradient(ellipse at 62% 43%,#b36b3138,transparent 59%),radial-gradient(ellipse at 23% 63%,#ea926525,transparent 56%); filter:blur(25px); border-radius:50%; pointer-events:none}
@media(prefers-color-scheme:light) {
  .scene-base {opacity:1; filter:saturate(.82) brightness(1.01)}
  .scene-atmosphere {background:radial-gradient(ellipse at 62% 43%,#dfaa6840,transparent 59%),radial-gradient(ellipse at 23% 63%,#e7ac7d30,transparent 56%)}
  .scene-shadows {opacity:.72}
  .object-light {mix-blend-mode:soft-light}
}
.scene-shadows {position:absolute; inset:0; width:100%; height:100%; pointer-events:none}
.scene-layer {position:absolute; inset:0; pointer-events:none}
.object-motion {position:absolute; inset:0; will-change:transform}
.object-image {position:absolute; display:block; height:auto; user-select:none}
.layer-apps .object-motion {transform-origin:27.5% 60.05%}
.layer-apps .object-image {width:68%; left:4%; top:2.8%}
.layer-research .object-motion {transform-origin:75% 59.77%}
.layer-research .object-image {width:100%; left:0; top:0}
.layer-games .object-motion {transform-origin:58% 72.56%}
.layer-games .object-image {width:67%; left:18.42%; top:20.65%}
.object-light {transform:translate(var(--lx,0px),var(--ly,0px)); position:absolute; border-radius:50%; opacity:0; pointer-events:none; mix-blend-mode:screen; transition:opacity 450ms var(--ease); background:radial-gradient(ellipse,#ffc29235,transparent 64%)}
.light-apps {left:6%; top:8%; width:43%; height:60%}
.light-games {left:30%; top:40%; width:56%; height:42%; background:radial-gradient(ellipse,#d1bdff33,transparent 65%)}
.light-research {left:57%; top:5%; width:39%; height:57%}
.hero[data-hover="apps"] .light-apps,.hero[data-hover="games"] .light-games,.hero[data-hover="research"] .light-research {opacity:1}
.hotspot {position:absolute; display:none; padding:0; width:48px; height:48px; border:0; background:transparent; z-index:3; border-radius:50%; transform:translate(-50%,-50%); align-items:center; justify-content:center}
.ready .hotspot {display:flex}
.hotspot-apps {left:27%; top:29%}
.hotspot-games {left:55%; top:60%}
.hotspot-research {left:75%; top:27%}
.hotspot-dot {display:grid; place-items:center; width:30px; height:30px; border:1px solid #f8e4d5; border-radius:50%; background:#34231be8; color:#fff2e7; font-size:21px; font-weight:400; box-shadow:0 0 0 7px #fce0c219; transition:transform 220ms var(--ease),background 220ms,box-shadow 220ms}
.hotspot[aria-pressed="true"] .hotspot-dot {background:#f7c6a9; color:#38251a; box-shadow:0 0 0 7px #ffba821f,0 0 25px #ffbf9c40}
.hotspot:hover .hotspot-dot,.hotspot:focus-visible .hotspot-dot {transform:scale(1.16); background:#ffe0ca; color:#38251a; box-shadow:0 0 0 9px #ffba8225,0 0 34px #ffbf9c70}
.hotspot-label {position:absolute; bottom:56px; left:50%; transform:translate(-50%,7px); white-space:nowrap; padding:9px 13px; border-radius:12px; background:#f7eee6; color:#302420; font-size:12px; font-weight:600; opacity:0; pointer-events:none; transition:opacity 180ms,transform 240ms var(--ease); box-shadow:0 8px 30px #1d12094d}
.hotspot-label::after {content:""; position:absolute; top:100%; left:calc(50% - 5px); border:5px solid transparent; border-top-color:#f7eee6}
.hotspot:hover .hotspot-label,.hotspot:focus-visible .hotspot-label {opacity:1; transform:translate(-50%,0)}
figcaption {display:flex; align-items:center; justify-content:space-between; gap:14px; margin:-4px 10px 0; font-size:11px; line-height:1.5; color:var(--secondary); position:relative}
.scene-invitation {color:var(--headline); white-space:nowrap; display:none}
.ready .scene-invitation {display:inline}
.scene-invitation span {margin-left:5px; font-size:16px}
.direction-desk {display:grid; grid-template-columns:minmax(0,43fr) minmax(0,57fr); align-items:center; gap:32px; margin:0 4.2%; padding:24px 0 22px; border-top:1px solid var(--rule)}
.direction-chooser {display:none; grid-template-columns:repeat(3,1fr); gap:5px; background:var(--chooser-bg); border:1px solid var(--chooser-border); padding:5px; border-radius:18px}
.ready .direction-chooser {display:grid}
.direction-chooser button {min-height:65px; padding:12px 13px; border:1px solid transparent; border-radius:12px; background:transparent; color:var(--secondary); text-align:left; display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px; transition:background 220ms,color 220ms,border-color 220ms}
.direction-number {grid-column:1/-1; font-size:10px; letter-spacing:.08em; color:var(--secondary)}
.direction-chooser button>span:nth-child(2) {font-size:14px; font-weight:500}
.chooser-indicator {opacity:0; color:var(--select-arrow); font-size:18px; transition:opacity 220ms,transform 220ms}
.direction-chooser button[aria-pressed="true"] {background:var(--selected-bg); border-color:var(--selected-border); color:var(--ink)}
.direction-chooser button[aria-pressed="true"] .chooser-indicator {opacity:1}
.direction-chooser button:hover {background:var(--hover-bg); color:var(--ink)}
.direction-chooser button:hover .chooser-indicator {opacity:1; transform:translate(1px,-1px)}
.direction-story {display:grid; grid-template-columns:1fr auto; gap:3px 18px; align-items:start}
.direction-story p {font-family:var(--font-display); font-weight:400; font-size:21px; line-height:1.35; letter-spacing:-.045em; margin:0; grid-column:1/-1; color:var(--ink)}
.direction-story>span {font-size:12px; line-height:1.65; color:var(--secondary); max-width:350px}
.direction-story a {font-size:12px; line-height:1.6; min-height:44px; display:flex; align-items:center; gap:12px; color:var(--accent-hover); border-bottom:1px solid var(--link-border); white-space:nowrap; align-self:center; margin-top:-5px}
.direction-story a:hover {color:var(--link-hover); border-color:var(--focus)}
body:not(.ready) .direction-desk {display:block}
body:not(.ready) .direction-story {padding:14px 0}
.hero-foot {display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 4.2% 18px; color:var(--secondary); font-size:11px}
.scroll-note {display:inline-flex; align-items:center; gap:9px; min-height:44px}
.scroll-note>span {font-size:20px; color:var(--accent); transition:transform 250ms var(--ease)}
.scroll-note:hover {color:var(--ink)}
.scroll-note:hover>span {transform:translateY(4px)}
.motion-button {display:none; align-items:center; gap:8px; min-height:44px; border:0; background:transparent; color:var(--secondary); font-size:11px; border-radius:8px; padding:8px}
.ready .motion-button {display:inline-flex}
.motion-button:hover {color:var(--ink)}
.motion-symbol {font-size:13px; min-width:12px; text-align:center}
.project-transition {margin-top:32px; padding:66px 6%; border-radius:34px; display:grid; grid-template-columns:1fr 1fr; gap:50px; background:var(--project-bg); color:var(--ink); position:relative; overflow:hidden; isolation:isolate}
.project-transition .eyebrow {color:var(--accent); font-size:11px; margin-bottom:16px}
.project-light {position:absolute; width:650px; height:500px; top:-220px; left:-160px; background:radial-gradient(ellipse,var(--project-glow),transparent 65%); transform:translateX(calc(var(--journey)*100px)); z-index:-1; pointer-events:none}
h2 {font-size:clamp(38px,3.9vw,59px); font-family:var(--font-display); font-weight:500; line-height:1.1; letter-spacing:-.045em; margin:0 0 12px}
h2 span {color:var(--headline)}
.project-platform {color:var(--secondary); font-size:12px; margin:0}
.project-promise {font-size:26px; line-height:1.3; letter-spacing:-.025em; margin:0 0 14px}
.project-copy>p:not(.project-promise) {font-size:14px; line-height:1.7; max-width:380px; color:var(--secondary); margin:0 0 16px}
.project-link {display:inline-flex; align-items:center; gap:30px; border-bottom:1px solid var(--link-border); min-height:44px; font-size:14px; font-weight:600; color:var(--accent)}
.project-transition a:focus-visible {outline-color:var(--focus)}
.site-footer {max-width:1560px; margin:66px auto 0; padding:0 6% 25px; color:var(--secondary); font-size:13px; line-height:1.65}
.footer-intro {border-top:1px solid var(--footer-rule); padding:38px 0 34px; display:flex; justify-content:space-between; gap:30px}
.footer-intro .wordmark {color:var(--ink); font-size:24px}
.footer-intro p {margin:12px 0 0; max-width:300px}
.footer-note {font-family:var(--font-display); font-size:19px; line-height:1.5; letter-spacing:-.04em; color:var(--footer-note); padding-top:3px}
.footer-links {display:grid; grid-template-columns:1.2fr 1fr 1.1fr .8fr; gap:24px; padding:2px 0 36px}
.footer-links h2 {font-family:var(--font-body); color:var(--ink); font-size:13px; line-height:1.5; font-weight:600; letter-spacing:0; margin:0 0 12px}
.footer-links nav {min-width:0}
.footer-links a {min-height:44px; display:flex; align-items:center; gap:10px; width:fit-content; max-width:100%; line-height:1.55; padding:8px 0; transition:color 180ms}
.footer-links p {margin:8px 0 0; font-size:12px; line-height:1.7}
.footer-bottom {border-top:1px solid var(--footer-bottom-rule); display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:17px; font-size:11px}
.footer-bottom a {min-height:44px; display:inline-flex; align-items:center; gap:20px}
/* Homepage sections share the workshop materials, with a different rhythm for each role. */
h3,h4 {font-family:var(--font-display); font-weight:500; margin:0; letter-spacing:-.035em}
.company-section {display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:10%; padding:108px 5.3% 86px; align-items:center}
.company-copy h2 {font-size:clamp(36px,3.5vw,52px); line-height:1.17; margin-bottom:28px}
.company-copy .eyebrow,.section-heading .eyebrow,.research-heading .eyebrow {margin-bottom:22px}
.section-lead {font-size:17px; line-height:1.75; color:var(--secondary); margin:0 0 20px}
.company-copy>p:not(.eyebrow):not(.section-lead) {font-size:15px; line-height:1.8; color:var(--secondary); max-width:540px; margin:0 0 20px}
.text-link {display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:48px; font-size:13px; font-weight:600; line-height:1.5; color:var(--accent-hover); border-bottom:1px solid var(--link-border); padding:8px 0}
.text-link span {font-size:18px}
.founder-note {background:var(--tray-soft); border:1px solid var(--tray-border); border-radius:8px 54px 8px 8px; padding:34px 36px; box-shadow:7px 7px 0 var(--hero-shadow); position:relative}
.founder-heading {display:flex; align-items:center; gap:18px; margin-bottom:26px}
.founder-heading .eyebrow {margin:0; font-size:10px; letter-spacing:.08em}
.founder-mark {display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; border:1px solid var(--border); border-radius:50%; font-family:var(--font-display); font-size:17px; color:var(--subtle); position:relative; overflow:hidden}
.founder-mark img {position:absolute; width:180%; max-width:none; height:auto; left:50%; top:50%; transform:translate(-45.5%,-22%)}
.founder-note h3 {font-size:32px; line-height:1.2}
.founder-note .founder-role {font-size:11px; color:var(--subtle); margin:12px 0 22px}
.founder-note>p:not(.founder-role) {font-size:14px; line-height:1.8; color:var(--secondary); margin:0 0 20px}
.project-transition {margin-top:0; padding-top:65px; padding-bottom:65px; min-height:350px; align-items:center; border:1px solid var(--project-border)}
.project-ideas {display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:28px; color:var(--accent); font-size:11px}
.project-ideas span {border-top:1px solid var(--project-rule); padding-top:9px}
.project-copy .project-status {font-size:12px!important; padding-left:12px; border-left:2px solid var(--accent)}
.work-shelf {padding:104px 3% 0}
.section-heading {display:flex; justify-content:space-between; align-items:end; gap:32px; padding:0 2.5%; margin-bottom:38px}
.section-heading h2 {font-size:clamp(36px,3.4vw,50px); line-height:1.17; margin:0}
.section-heading>.text-link {flex-shrink:0; margin-bottom:6px}
.work-trays {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; align-items:stretch}
.work-tray {padding:34px 38px 28px; background:var(--tray); border:1px solid var(--tray-border); border-radius:32px 32px 10px 10px; display:flex; flex-direction:column; min-width:0}
.games-tray {background:var(--tray-soft); border-radius:10px 10px 32px 32px; margin-top:38px}
.tray-heading {display:flex; align-items:center; gap:15px; margin-bottom:27px}
.tray-heading .eyebrow {font-size:10px; margin:0; letter-spacing:.08em}
.tray-symbol {font-size:28px; line-height:1; color:var(--headline); font-weight:400}
.work-tray h3 {font-size:28px; line-height:1.25; margin-bottom:18px}
.tray-intro {font-size:14px; line-height:1.8; color:var(--secondary); margin:0 0 30px; max-width:430px}
.project-row {padding:24px 0; border-top:1px solid var(--rule)}
.row-heading {display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 16px}
.row-heading h4 {font-size:18px; line-height:1.4}
.row-heading>span {font-size:10px; color:var(--subtle); line-height:1.7}
.project-row>p {font-size:13px; color:var(--secondary); line-height:1.8; margin:12px 0 0; max-width:430px}
.availability-note {font-size:11px; color:var(--subtle); line-height:1.7; margin:0 0 18px; max-width:390px}
.work-tray>.text-link {align-self:start; margin-top:auto}
.research-section {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:9%; margin:104px 5.3% 0; padding-top:50px; border-top:1px solid var(--rule)}
.research-heading h2 {font-size:clamp(36px,3.5vw,52px); line-height:1.17; margin-bottom:28px}
.research-heading .section-lead {font-size:16px; max-width:410px}
.research-directions {list-style:none; padding:0; margin:0}
.research-directions li {display:grid; grid-template-columns:25px 1fr; gap:20px; padding:25px 0; border-bottom:1px solid var(--rule)}
.research-directions li:first-child {padding-top:0}
.research-number {font-size:11px; color:var(--accent); padding-top:5px}
.research-directions h3 {font-size:21px; line-height:1.4; margin-bottom:12px}
.research-directions p {font-size:14px; line-height:1.8; color:var(--secondary); margin:0; max-width:470px}
.research-bottom {display:flex; gap:22px; justify-content:space-between; align-items:center; margin-top:22px}
.research-bottom>p {font-size:11px; color:var(--subtle); line-height:1.7; margin:0}
.research-bottom>.text-link {font-size:12px; gap:15px; flex-shrink:0}
.contact-invitation {display:flex; justify-content:space-between; align-items:center; gap:36px; padding:80px 5.3% 28px}
.contact-invitation h2 {font-size:clamp(27px,2.6vw,38px); line-height:1.35; margin:0}
.contact-invitation .primary-link {flex-shrink:0}
@media(max-width:1100px){
  .company-section{gap:6%; padding:80px 4% 70px}
  .founder-note{padding:28px}
  .founder-note h3{font-size:28px}
  .work-tray{padding:30px 28px 26px}
  .work-tray h3{font-size:24px}
  .research-section{gap:7%; margin-top:80px}
  .research-bottom{display:block}
  .research-bottom>.text-link{margin-top:12px}
}
@media(max-width:800px){
  .company-section{grid-template-columns:1fr; gap:38px; padding:65px 38px}
  .company-copy{max-width:590px}
  .founder-note{max-width:540px; padding:30px; border-top-right-radius:44px}
  .company-copy h2,.section-heading h2,.research-heading h2{font-size:38px}
  .project-transition{padding:44px 38px; min-height:0; gap:28px}
  .project-ideas{gap:8px 14px; margin-top:22px}
  .work-shelf{padding:66px 16px 0}
  .section-heading{padding:0 22px; align-items:start; gap:22px; flex-direction:column; margin-bottom:28px}
  .section-heading>.text-link{margin:0}
  .work-trays{gap:20px}
  .work-tray{padding:27px 24px 26px}
  .games-tray{margin-top:24px}
  .tray-heading{align-items:start; gap:10px}
  .research-section{grid-template-columns:1fr; gap:36px; margin:70px 38px 0; padding-top:38px}
  .research-heading .section-lead{max-width:540px}
  .research-directions li{grid-template-columns:25px 1fr; gap:20px}
  .research-bottom{display:flex}
  .research-bottom>.text-link{margin-top:0}
  .contact-invitation{padding:62px 38px 12px}
}
@media(max-width:600px){
  .work-trays{grid-template-columns:1fr}
  .games-tray{margin-top:0; border-radius:10px 10px 30px 30px}
  .apps-tray{border-radius:30px 30px 10px 10px}
  .work-tray h3{font-size:27px}
  .contact-invitation{align-items:start; flex-direction:column; gap:24px}
}
@media(max-width:520px){
  .company-section{padding:58px 20px 46px; gap:30px}
  .company-copy h2,.section-heading h2,.research-heading h2{font-size:31px; line-height:1.2; margin-bottom:22px}
  .company-copy .eyebrow,.section-heading .eyebrow,.research-heading .eyebrow{font-size:10px; margin-bottom:18px}
  .section-lead{font-size:15px; line-height:1.8}
  .company-copy>p:not(.eyebrow):not(.section-lead){font-size:14px}
  .founder-note{padding:25px 24px; border-top-right-radius:40px}
  .founder-heading{gap:12px; margin-bottom:22px}
  .founder-heading .eyebrow{font-size:9px; letter-spacing:.06em}
  .founder-note h3{font-size:26px}
  .founder-note>p:not(.founder-role){font-size:13px}
  .text-link{font-size:12px}
  .project-transition{padding:36px 27px; gap:28px}
  .project-ideas{margin-top:22px; font-size:10px; gap:8px 16px}
  .work-shelf{padding:58px 0 0}
  .section-heading{padding:0 20px; gap:0; margin-bottom:26px}
  .work-trays{gap:18px}
  .work-tray{padding:30px 27px 26px}
  .work-tray h3{font-size:26px}
  .tray-intro{font-size:13px; margin-bottom:24px}
  .tray-heading{margin-bottom:24px}
  .tray-heading .eyebrow{font-size:10px}
  .project-row{padding:22px 0}
  .row-heading{gap:4px 14px}
  .row-heading h4{font-size:17px}
  .row-heading>span{font-size:10px}
  .availability-note{font-size:11px}
  .research-section{margin:60px 20px 0; padding-top:32px; gap:28px}
  .research-heading .section-lead{font-size:15px; margin-bottom:0}
  .research-directions li{gap:12px; grid-template-columns:20px 1fr; padding:22px 0}
  .research-directions h3{font-size:19px}
  .research-directions p{font-size:13px}
  .research-bottom{display:block}
  .research-bottom>.text-link{margin-top:14px}
  .contact-invitation{padding:52px 20px 6px}
  .contact-invitation h2{font-size:26px}
}
@media(max-width:350px){
  .company-section{padding-left:16px; padding-right:16px}
  .company-copy h2,.section-heading h2,.research-heading h2{font-size:28px}
  .founder-note{padding:24px 20px}
  .founder-note h3{font-size:24px}
  .founder-heading{gap:9px}
  .founder-mark{width:42px; height:42px; font-size:15px}
  .work-tray,.project-transition{padding-left:22px; padding-right:22px}
  .work-tray h3{font-size:23px}
  .contact-invitation h2{font-size:24px}
}
/* Small pivots around the measured contact points; no object translation. */
@keyframes arches-breathe {0%,100%{transform:rotate(-.04deg)}50%{transform:rotate(.04deg)}}
@keyframes world-breathe {0%,100%{transform:rotate(.09deg)}50%{transform:rotate(-.09deg)}}
@keyframes seed-breathe {0%,100%{transform:rotate(-.05deg);filter:brightness(.99)}50%{transform:rotate(.05deg);filter:brightness(1.035)}}
@keyframes arrive {from{opacity:.4;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes story-in {from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference) {
  .ready .layer-apps .object-motion {animation:arches-breathe 23s ease-in-out infinite}
  .ready .layer-games .object-motion {animation:world-breathe 19s ease-in-out -6s infinite}
  .ready .layer-research .object-motion {animation:seed-breathe 17s ease-in-out -3s infinite}
  .ready .intro-copy {animation:arrive 750ms var(--ease) both}
  .ready .direction-story:not([hidden]) {animation:story-in 350ms var(--ease)}
}
.motion-paused *, .motion-paused *::before, .motion-paused *::after {animation-play-state:paused!important; transition:none!important}
.motion-paused {scroll-behavior:auto}
@media(min-width:1560px){.intro{grid-template-columns:45% 55%}}
@media(max-width:1100px){
  .masthead{padding:0 4%; height:82px}
  main{padding:0 18px}
  .intro{padding:34px 4% 18px; grid-template-columns:47% 53%; min-height:520px}
  h1{font-size:clamp(34px,4.1vw,46px)}
  .lead{font-size:16px; max-width:330px}
  .eyebrow{font-size:10px; letter-spacing:.09em}
  .workbench{margin-right:-5%}
  .direction-desk{grid-template-columns:minmax(0,42fr) minmax(0,58fr); gap:24px; margin:0 4%}
  .direction-chooser button{padding:10px 8px}
  .direction-story{grid-template-columns:1fr}
  .direction-story p{font-size:21px}
  .direction-story a{justify-self:start; min-height:44px; margin-top:2px}
  figcaption{font-size:10px; margin-top:6px; display:block}
  .scene-invitation{margin-left:8px}
}
@media(max-width:800px){
  .masthead{height:76px; padding:0 30px}
  .masthead nav{gap:20px; font-size:12px}
  .masthead nav a:nth-child(2){display:none}
  .hero{border-radius:30px}
  .intro{grid-template-columns:1fr; padding:34px 38px 14px; min-height:0}
  .intro-copy{padding:8px 0 0}
  h1{font-size:clamp(40px,6.6vw,56px); line-height:1.14; margin-bottom:22px}
  .eyebrow{font-size:10px; margin-bottom:23px}
  .lead{font-size:16px; max-width:480px; margin-bottom:22px}
  .quiet-intro{display:none}
  .workbench{width:100%; max-width:630px; margin:-2px auto 0}
  .scene{aspect-ratio:1.7; margin:0 -2%}
  figcaption{display:flex; margin:0 0 5px; font-size:10px}
  .direction-desk{grid-template-columns:1fr; margin:14px 38px 0; gap:20px; padding:22px 0 18px}
  .direction-chooser button{min-height:58px; padding:9px 15px}
  .direction-story{grid-template-columns:1fr auto; padding-right:0; min-height:76px; gap:5px 22px}
  .direction-story>span{max-width:340px}
  .direction-story a{align-self:center; margin-top:-6px}
  .hero-foot{padding:0 30px 16px}
  .project-transition{padding:44px 38px; gap:32px}
  .project-promise{font-size:21px}
  .site-footer{padding-left:40px; padding-right:40px}
  .footer-links{grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 42px}
  .footer-note{font-size:17px}
}
@media(max-width:520px){
  .masthead{padding:0 22px; height:72px; gap:10px}
  .wordmark{font-size:20px; letter-spacing:-.9px}
  .masthead nav{font-size:12px}
  .masthead nav a:last-child{display:none}
  main{padding:0 12px}
  .hero{border-radius:27px}
  .intro{padding:31px 22px 4px}
  .intro-copy{padding:0}
  .eyebrow{font-size:11px; letter-spacing:.065em; margin-bottom:21px; line-height:1.6}
  .little-sun{font-size:16px; margin-right:5px}
  h1{font-size:clamp(28px,8.3vw,42px); line-height:1.16; letter-spacing:-.06em; margin-bottom:19px}
  .lead{font-size:15px; line-height:1.65; max-width:345px; margin-bottom:23px}
  .primary-link{min-height:48px; font-size:12px; padding:12px 20px; gap:28px}
  .workbench{margin:16px -10px 0; width:calc(100% + 20px)}
  .scene{aspect-ratio:1.35; margin:-10px -4% -8px}
  .hotspot-dot{width:26px; height:26px; font-size:18px; box-shadow:0 0 0 5px #fce0c219}
  .hotspot-label{font-size:10px; bottom:49px; padding:7px 9px}
  .hotspot-apps .hotspot-label{transform:translate(-34%,7px)}
  .hotspot-apps:hover .hotspot-label,.hotspot-apps:focus-visible .hotspot-label{transform:translate(-34%,0)}
  .hotspot-research .hotspot-label{transform:translate(-68%,7px)}
  .hotspot-research:hover .hotspot-label,.hotspot-research:focus-visible .hotspot-label{transform:translate(-68%,0)}
  figcaption{font-size:10px; margin:0 10px; gap:6px}
  .scene-invitation{font-size:0; margin:0}
  .scene-invitation span{font-size:17px}
  .direction-desk{margin:20px 22px 0; padding:18px 0 6px; gap:17px}
  .direction-chooser{border-radius:15px; padding:4px; gap:3px}
  .direction-chooser button{min-height:56px; padding:8px; border-radius:10px; gap:2px}
  .direction-chooser button>span:nth-child(2){font-size:12px}
  .direction-number{font-size:9px}
  .chooser-indicator{font-size:16px}
  .direction-story{grid-template-columns:1fr; min-height:125px; gap:3px}
  .direction-story p{font-size:20px}
  .direction-story>span{font-size:12px; max-width:300px}
  .direction-story a{font-size:12px; min-height:44px; margin:0; align-self:end}
  .hero-foot{padding:1px 17px 11px; gap:10px; align-items:center}
  .scroll-note{font-size:10px; gap:6px; max-width:190px}
  .motion-button{font-size:10px; white-space:nowrap; padding:5px}
  .project-transition{margin-top:20px; border-radius:26px; padding:36px 27px; grid-template-columns:1fr; gap:28px}
  .project-transition .eyebrow{font-size:10px; letter-spacing:.08em; margin-bottom:12px}
  .project-transition h2{font-size:39px}
  .project-promise{font-size:23px}
  .project-copy>p:not(.project-promise){font-size:13px}
  .site-footer{margin-top:42px; padding:0 28px 22px; font-size:12px}
  .footer-intro{padding:28px 0 30px; display:block}
  .footer-intro .wordmark{font-size:22px}
  .footer-intro .footer-note{font-size:15px; margin-top:22px; line-height:1.6}
  .footer-links{gap:26px 24px; padding-bottom:28px}
  .footer-links h2{font-size:12px; margin-bottom:8px}
  .footer-links p{font-size:11px}
  .footer-bottom{font-size:10px; gap:15px}
  .footer-bottom a{gap:10px; white-space:nowrap}
}
@media(max-width:350px){
  .intro{padding-left:18px; padding-right:18px}
  h1{font-size:27px}
  .lead{font-size:14px}
  .eyebrow{font-size:10px; letter-spacing:.03em}
  .direction-desk{margin-left:18px; margin-right:18px}
  .direction-chooser button{padding:7px 5px}
  .scroll-note{max-width:160px; line-height:1.5}
  .hero-foot{padding-left:15px; padding-right:13px}
  .project-transition{padding:30px 22px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important; transition:none!important}
  .scene-layer,.object-motion,.project-light{transform:none!important}
}
