:root{--radius-small:8px;--radius-control:10px;--radius-card:12px;--radius-panel:20px}
@font-face{font-family:Campaign;src:url('assets-v19/campaign-display.woff2') format('woff2');font-display:swap}
/* One entrance timeline owns the UI, including the final 550ms of each clip. */
.boot-orbit{transform-origin:80px 80px;animation:boot-orbit 7s linear infinite}
.boot-cube{animation:boot-breathe 2.6s ease-in-out infinite}
.boot-loader.has-error .boot-orbit,.boot-loader.has-error .boot-cube{animation-play-state:paused}
.boot-retry:focus-visible{outline:2px solid #c2f5ff;outline-offset:5px}
@keyframes boot-orbit{to{transform:rotate(360deg)}}
@keyframes boot-breathe{0%,100%{opacity:.6;transform:translateY(3px)}50%{opacity:1;transform:translateY(-3px)}}
.fallback-font .slogan p{font-family:'Microsoft YaHei','PingFang SC',sans-serif}
:root{--ink:#f5fbff;--muted:#bdd3ea;--cyan:#93efff;--line:#c2e8ff40;--glass:linear-gradient(130deg,#b7dbff25,#0730647a 45%,#071e46b0);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{background:#07172d;color-scheme:dark}body{margin:0;min-height:100dvh;display:flex;align-items:center;justify-content:center;gap:0;font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:var(--ink);background:radial-gradient(ellipse at 34% 45%,#163962,transparent 65%),#07172d}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer;border:0;color:inherit}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #abf3ff;outline-offset:4px}button:active,a.primary:active{transform:translateY(1px) scale(.985)}[hidden]{display:none!important}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.experience{width:min(390px,calc((100dvh - 32px)*.475));height:calc(100dvh - 32px);max-height:860px;position:relative;overflow:hidden;isolation:isolate;border-radius:26px;background:#103668;box-shadow:0 25px 80px #0005}.scene-film,#hold{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.scene-film{z-index:-4}#hold{z-index:-3}.shade{position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,#041e46b3,transparent 35%,transparent 68%,#031530c2)}.frame-lines{position:absolute;inset:80px 14px 16px;border:1px solid #b1e1ff12;border-top:0;pointer-events:none;z-index:-1;clip-path:polygon(0 0,1px 0,1px 96%,8% 100%,92% 100%,calc(100% - 1px) 96%,calc(100% - 1px) 0,100% 0,100% 96%,92% 100%,8% 100%,0 96%)}
.brand{position:absolute;top:24px;left:24px;right:22px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;z-index:6}.brand img{width:117px;height:auto}.campaign{position:absolute;top:10.2%;left:5%;right:5%;text-align:center;pointer-events:none;z-index:1;animation:title-arrive .7s var(--ease) both}.campaign-kicker{display:flex;align-items:center;justify-content:center;gap:8px;font-size:8px;letter-spacing:.22em;color:#d2f5ff;margin:0 0 0}.campaign-kicker>span{width:19px;height:1px;background:var(--cyan)}.campaign h1{margin:-6px 0 -14px;line-height:0}.campaign h1 img{display:block;width:100%;height:21dvh;max-height:181px;object-fit:contain;filter:drop-shadow(0 4px 9px #041e4580)}.campaign-year{margin:0;display:flex;justify-content:center;align-items:center;gap:10px;text-shadow:0 2px 8px #08213e;font-style:italic}.campaign-year b{font-size:22px;letter-spacing:.09em;font-weight:500}.campaign-year span{font-size:14px;letter-spacing:.18em}.campaign-year::before,.campaign-year::after{content:'';width:23px;height:1px;background:linear-gradient(90deg,transparent,#ceeeff)}.campaign-year::after{transform:rotate(180deg)}
.intro{position:absolute;left:26px;right:26px;bottom:28px;display:flex;flex-direction:column;gap:18px;z-index:2}.slogan{text-align:center;text-shadow:0 2px 12px #001b48}.slogan p{display:flex;align-items:center;justify-content:center;gap:12px;font:italic 25px/1.2 Campaign,'Microsoft YaHei',sans-serif;letter-spacing:.035em;margin:0 0 9px;white-space:nowrap}.slogan p>span{width:1px;height:16px;background:#b5edff88;transform:rotate(18deg)}.slogan small{font-size:10px;color:#d4e7ff;letter-spacing:.12em}.intro.step-only{gap:0}.intro-bottom{text-align:center}.primary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:50px;padding:13px 20px;color:#f5fdff;background:linear-gradient(115deg,#84d9ff69,#347bc25c 40%,#143d7199);border:1px solid #b8eeff9c;box-shadow:inset 0 1px 0 #edffff99,inset 0 -1px 0 #78beed6b,0 6px 22px #00275e55;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-radius:var(--radius-control);font-size:13px;font-weight:650;text-decoration:none;transition:background .2s,transform .15s}.primary:hover{background:linear-gradient(115deg,#a1e7ff8a,#438dd279 40%,#25568caa)}.invitation-button{width:100%;min-height:68px;text-align:left;border-radius:var(--radius-card);padding:11px 15px 11px 25px}.invitation-button::before{content:none}.button-copy{display:flex;flex-direction:column;gap:4px}.button-copy small{font-size:8px;letter-spacing:.2em;font-weight:400;color:#ceeeff}.button-copy strong{font-size:20px;letter-spacing:.17em;font-weight:600}#videoStatus{margin:11px 0 0;color:#d1e4fa;font-size:10px;letter-spacing:.04em;line-height:1.6}.travel{position:absolute;left:26px;right:26px;bottom:26px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#d9efff;font-size:11px;z-index:3;text-shadow:0 1px 6px #00132a}.travel #travelLabel{flex:1}.loading-line{height:2px;flex-basis:100%;background:#bddfff28;overflow:hidden}.loading-line i{display:block;height:100%;background:#a3edff;transform:scaleX(0);transform-origin:left;transition:transform .2s}.travel.is-playing{opacity:0;pointer-events:none}.travel.is-waiting{opacity:1}.travel .quiet{min-height:36px}
.sheet{position:absolute;left:14px;right:14px;bottom:16px;padding:23px 17px 13px;display:flex;flex-direction:column;border-radius:var(--radius-panel);background:var(--glass);border:1px solid #d7eeff66;box-shadow:inset 0 1px 0 #edffff66,inset 0 -1px 0 #83ceff36,0 14px 40px #02193252;color:var(--ink);backdrop-filter:blur(24px) saturate(1.25);-webkit-backdrop-filter:blur(24px) saturate(1.25);animation:arrive .38s var(--ease) both}.sheet::before{content:'';position:absolute;top:0;left:24px;width:60px;height:2px;background:#beeeff;box-shadow:0 0 12px #88eaff77}.jobs{height:66%}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.eyebrow{font-size:8px;letter-spacing:.2em;color:#b4e8ff;margin:0 0 8px}.sheet h2{font-size:27px;letter-spacing:.03em;line-height:1.35;margin:0;font-weight:600}.quiet{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#b1d8ff14;border:1px solid #cdeaff3d;color:#dff2ff;min-height:36px;padding:8px 10px;border-radius:var(--radius-control);font-size:10px;white-space:nowrap}.quiet .icon{width:13px;height:13px}.lead{font-size:11px;color:var(--muted);margin:9px 0 16px;line-height:1.6}.filters{display:flex;flex-shrink:0;gap:4px;padding:0 0 13px}.filters button{padding:9px 4px;min-height:36px;flex:1;background:#a4d6ff08;border:1px solid #abcff52b;border-radius:var(--radius-small);font-size:10px;white-space:nowrap;color:#cbddf3}.filters button[aria-pressed=true]{background:#97e3ff2b;border-color:#a7eafa8c;color:#f6fdff;box-shadow:inset 0 -2px 0 #9be8ff}.list-heading{display:flex;justify-content:space-between;font-size:9px;color:#bfcee3;padding:0 2px 9px}.job-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b7e1ff70 transparent}.job-row{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;width:100%;text-align:left;padding:13px 11px;margin:0 0 7px;background:linear-gradient(110deg,#b6ddff17,#68a7e608);border:1px solid #b9dafa39;border-radius:var(--radius-card);color:#f5fbff;transition:background .16s,transform .16s}.job-row:hover{background:#b3e9ff26}.job-row .index{font-size:9px;color:#bbdef9;align-self:start;padding-top:4px;font-variant-numeric:tabular-nums}.job-row strong{font-size:13px;line-height:1.5;display:block;font-weight:550}.job-row small{display:block;font-size:9px;color:#afcce8;margin-top:4px}.job-row .pay{font-size:12px;color:#b0eeff;font-weight:600;white-space:nowrap;text-align:right}.job-row .arrow{display:block;width:14px;height:14px;margin:6px 0 0 auto}.job-row.visited small::after{content:' / 已探索';color:#bde9ee}.detail,.apply{height:70%;padding-top:15px}.back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;text-align:left;font-size:11px;color:#d0e9ff;background:transparent;padding:5px 0 13px}.back .icon{width:15px;height:15px}.detail h2{font-size:24px}.salary{font-size:24px;color:#afeaff;margin:10px 0 18px;font-weight:600}.salary small{font-size:10px;margin-left:5px;color:#bdd4ec;font-weight:400}.tabs{display:flex;gap:27px;flex-shrink:0;border-bottom:1px solid var(--line)}.tabs button{padding:9px 0 12px;font-size:12px;color:#b2cbe3;border-bottom:2px solid transparent;background:none}.tabs button[aria-selected=true]{color:#d6f6ff;border-color:#9aeaff;font-weight:600}.job-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;font-size:12px;line-height:1.9;padding:16px 3px 10px 0;scrollbar-width:thin;scrollbar-color:#b7e1ff70 transparent;color:#eff7ff}.job-body ol{margin:0;padding-left:21px}.job-body li{padding-left:3px;margin-bottom:14px;overflow-wrap:anywhere}.job-body li::marker{color:#a2d0f1;font-size:10px}.detail-footer{padding-top:13px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.detail-footer>span{font-size:10px;color:#c0d9ee;line-height:1.7;letter-spacing:.13em}.detail-footer .primary{font-size:12px;padding:12px 14px}.apply-scroll{overflow:auto;min-height:0;flex:1;scrollbar-width:thin}.apply .eyebrow{margin-top:14px}.application-job{border-bottom:1px solid var(--line);padding:11px 0 16px}.application-job>span,.email-block>span,.subject-block>span{color:#b3cde6;font-size:10px}.application-job h3{font-size:18px;margin:7px 0}.application-job p{font-size:14px;color:#adebff;margin:0}.email-block{padding:19px 0 9px}.email-block p{font-size:21px;letter-spacing:.01em;margin:7px 0 12px;user-select:all}.subject-block{padding:15px 0 0}.subject-block p{font-size:11px;line-height:1.8;margin:7px 0;overflow-wrap:anywhere}.apply-note,#copyStatus{font-size:10px;line-height:1.8;color:#b5cee7}#copyStatus{min-height:18px;color:#b8f1fa}.apply-footer{flex-shrink:0;border-top:1px solid var(--line);padding-top:13px}.apply-footer p{text-align:center;color:#bcd5eb;font-size:9px;margin:9px 0 0}.load-error{text-align:center;font-size:12px;flex:1}.load-error .primary{margin:auto}.toast{position:absolute;z-index:10;left:24px;right:24px;top:84px;padding:13px;background:#0a2d58eb;border:1px solid #9bd9f767;border-radius:var(--radius-control);font-size:12px;text-align:center;backdrop-filter:blur(14px)}
.movie-reveal{animation:none!important}
@keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes title-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){body{display:block}.experience{width:100%;height:100dvh;max-height:none;border-radius:0;box-shadow:none}.brand{top:calc(20px + env(safe-area-inset-top));left:24px;right:22px}.sheet{bottom:calc(12px + env(safe-area-inset-bottom))}.intro{bottom:calc(25px + env(safe-area-inset-bottom))}.travel{bottom:calc(28px + env(safe-area-inset-bottom))}.campaign{top:calc(10% + env(safe-area-inset-top)/2)}.campaign h1 img{height:21dvh;max-height:200px}.job-row strong{font-size:14px}.filters button{font-size:11px}.job-body{font-size:14px}.slogan p{font-size:27px}}
@media(max-height:690px){.brand{top:17px}.brand img{width:104px}.campaign{top:10%}.campaign h1{margin-bottom:-10px}.campaign-kicker{font-size:7px}.campaign-year b{font-size:18px}.campaign-year span{font-size:12px}.intro{gap:12px;bottom:20px}.slogan p{font-size:22px;margin-bottom:6px}.slogan small{font-size:9px}.invitation-button{min-height:57px}.button-copy strong{font-size:18px}#videoStatus{font-size:9px;margin-top:8px}.sheet{padding-top:16px}.jobs{height:70%}.detail,.apply{height:77%}.sheet h2{font-size:23px}.lead{margin:6px 0 10px}.salary{margin:6px 0 10px}.job-row{padding:10px}}
@media(prefers-reduced-transparency:reduce){.sheet{background:#103659}.primary{background:#28628d}}
@supports not (backdrop-filter:blur(1px)){.sheet{background:#123959ed}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Keep campaign lettering above the graduate on both short and tall phones. */
.scene-film,#hold{object-position:50% 0}.campaign{top:9%}.campaign h1 img{height:17.5dvh;max-height:145px}.job-row .arrow .icon{width:14px;height:14px}@media(max-width:650px){.campaign{top:calc(9% + env(safe-area-inset-top)/2)}.campaign h1 img{height:17.5dvh;max-height:154px}}
.travel.is-playing{visibility:hidden}.travel.is-waiting{visibility:visible}

/* Quiet glass scrollbars for every reading panel, including the application page. */
:is(.job-list,.job-body,.apply-scroll){scrollbar-width:thin;scrollbar-color:#b0e9ff66 transparent;padding-right:8px}
:is(.job-list,.job-body,.apply-scroll):hover{scrollbar-color:#c4f3ffaa transparent}
@supports selector(::-webkit-scrollbar){
  :is(.job-list,.job-body,.apply-scroll),:is(.job-list,.job-body,.apply-scroll):hover{scrollbar-width:auto;scrollbar-color:auto}
  :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar{width:8px;height:8px;background:transparent}
  :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-track{background:transparent;margin-block:6px}
  :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-thumb{min-height:32px;background:#b0e9ff66;background-clip:padding-box;border:2px solid transparent;border-radius:20px}
  :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-thumb:hover{background-color:#c4f3ffb3}
  :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-thumb:active{background-color:#d7f7ff}
  :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-button{display:none;width:0;height:0}
  :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-corner{background:transparent}
}

/* Keep controls within the visible phone area, above browser and gesture bars. */
.experience{--ui-bottom:44px;--ui-top:96px;--ui-side:18px}
.intro,.travel{bottom:var(--ui-bottom)}
.sheet{left:var(--ui-side);right:var(--ui-side);bottom:var(--ui-bottom);max-height:calc(100% - var(--ui-top) - var(--ui-bottom));min-height:0;overflow:hidden}
.sheet> :not(.job-list):not(.job-body):not(.apply-scroll):not(.load-error){flex-shrink:0}
.job-list,.job-body,.apply-scroll{scroll-padding-block:12px;padding-bottom:16px}
.job-row{grid-template-columns:18px minmax(0,1fr) auto}
.job-row strong{overflow-wrap:anywhere}
.intro{max-height:calc(100% - var(--ui-top) - var(--ui-bottom))}
.frame-lines{bottom:var(--ui-bottom)}
@media(max-width:650px),(max-height:500px){
  html,body{width:100%;height:100%;overflow:hidden}
  body{display:block;min-height:0}
  .experience{width:100%;height:100vh;height:100svh;max-height:none;border-radius:0;box-shadow:none;--ui-bottom:calc(clamp(40px,7svh,62px) + env(safe-area-inset-bottom,0px));--ui-top:calc(92px + env(safe-area-inset-top,0px));--ui-side:max(18px,env(safe-area-inset-left,0px),env(safe-area-inset-right,0px))}
  
  .brand{top:calc(20px + env(safe-area-inset-top,0px));left:24px;right:24px}
  .intro,.travel{left:24px;right:24px;bottom:var(--ui-bottom)}
  .sheet{bottom:var(--ui-bottom)}
  .campaign h1 img{height:17.5svh}
  .jobs{height:68%}.detail,.apply{height:73%}
}
@media(max-height:690px){
  .experience{--ui-top:calc(82px + env(safe-area-inset-top,0px))}
  .brand{top:calc(15px + env(safe-area-inset-top,0px))}
  .intro{gap:10px}.jobs{height:74%}.detail,.apply{height:81%}
  .sheet{padding:14px 14px 12px}
  .sheet h2{font-size:22px}.lead{margin:6px 0 9px}
  .filters{padding-bottom:9px}
  .back{padding-bottom:8px}.salary{margin:6px 0 9px;font-size:22px}
  .detail-footer,.apply-footer{padding-top:10px}
}
@media(max-height:500px){
  .experience{--ui-bottom:calc(22px + env(safe-area-inset-bottom,0px));--ui-top:calc(68px + env(safe-area-inset-top,0px))}
  .brand img{width:85px}.brand{top:calc(12px + env(safe-area-inset-top,0px))}
  .campaign{top:58px}.campaign h1 img{height:90px}.campaign-year b{font-size:16px}
  .intro{left:max(24px,calc((100% - 380px)/2));right:max(24px,calc((100% - 380px)/2));gap:7px}
  .slogan p{font-size:20px}.invitation-button{min-height:54px}#videoStatus{margin-top:5px}
  .sheet{left:max(var(--ui-side),calc((100% - 580px)/2));right:max(var(--ui-side),calc((100% - 580px)/2));height:calc(100% - var(--ui-top) - var(--ui-bottom));padding:10px 14px}
  .sheet h2{font-size:19px}.eyebrow{margin-bottom:3px}.lead{margin:3px 0 5px}
  .filters{padding-bottom:5px}.list-heading{padding-bottom:5px}
  .back{padding:0 0 4px}.salary{font-size:18px;margin:3px 0}
  .tabs button{padding:6px 0}.job-body{padding-top:8px}
  .detail-footer,.apply-footer{padding-top:6px}.detail-footer .primary,.apply-footer .primary{min-height:44px;padding:9px 14px}
}

/* Entrances are orchestrated in flow.js to avoid replaying on video completion. */
.sheet,.campaign{animation:none}
.travel.is-waiting{animation:arrive .26s var(--ease) both}
.toast{animation:arrive .22s var(--ease) both}
@media(prefers-reduced-motion:reduce){.boot-orbit,.boot-cube,.travel.is-waiting,.toast{animation:none!important}}

/* v18.5: consistent mobile controls; icons never inherit native button padding. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button{appearance:none;-webkit-appearance:none;box-sizing:border-box}
.icon{display:block;flex:0 0 auto;overflow:visible}
.brand{align-items:flex-start}
.brand>img{display:block;flex:0 0 auto}




.button-copy{min-width:0;gap:0}
.invitation-button{padding-top:16px;padding-bottom:16px}
.button-arrow{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;aspect-ratio:1/1;padding:0;border:0;border-radius:0;background:none;transform:none;box-shadow:none}
.button-arrow .icon{width:32px;height:32px;margin:0;transform:none;stroke-width:1.7}
.kolo-next use{animation:invitation-flow 2.4s cubic-bezier(.4,0,.2,1) infinite;transform-box:fill-box;transform-origin:center}
@keyframes invitation-flow{0%,65%,100%{transform:translateX(0);opacity:.65}26%{transform:translateX(3px);opacity:1}45%{transform:translateX(0);opacity:.45}}
.intro[hidden] .kolo-next use{animation-play-state:paused}
.campaign h1{margin:0 0 -10px}
.sheet-heading h2{margin-top:0}
.apply-scroll>h2{margin-top:12px}
.job-row .arrow{display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;line-height:0}
.job-row .arrow .icon{width:14px;height:14px;margin:0}
.primary>.icon,.quiet>.icon,.back>.icon{flex:0 0 auto;align-self:center;margin:0}
@media(prefers-reduced-motion:reduce){.kolo-next use{animation:none!important;transform:none}}

/* v18.6: logo at 60%, campaign lettering at 120% of the previous size. */
.brand img{width:70.2px}
.campaign h1 img{width:120%;margin-inline:-10%;height:21dvh;max-height:174px}
@media(max-width:650px){.campaign h1 img{max-height:184.8px}}
@media(max-width:650px),(max-height:500px){.campaign h1 img{height:21svh}}
@media(max-height:690px){.brand img{width:62.4px}}
@media(max-height:500px){.brand img{width:51px}.campaign h1 img{height:108px}}

/* v18.10: Alaya / XYZ interaction palette; source: XYZ design-system blue.6. */
:root{--brand-primary:#4362ff;--brand-hover:#2e44d9;--brand-soft:#f0f5ff;--brand-border:#bdceff;--surface:#fff;--surface-subtle:#f8fafc;--text-primary:#090e1a;--text-secondary:#344256;--text-muted:#65758b;--border-neutral:#e1e7ef}
.sheet{--ink:var(--text-primary);--muted:var(--text-secondary);--line:var(--border-neutral);color:var(--ink);color-scheme:light;background:rgba(255,255,255,.97);border-color:var(--surface);box-shadow:0 16px 42px #060a1026;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.sheet::before{content:none;display:none}
.sheet .quiet{color:var(--text-secondary);background:var(--surface);border-color:var(--border-neutral)}
.sheet .quiet:hover{color:var(--brand-primary);background:var(--brand-soft);border-color:var(--brand-border)}
.sheet .back{color:var(--text-secondary)}
.sheet .back:hover{color:var(--brand-primary)}
.sheet .filters button{color:var(--text-secondary);background:var(--surface);border-color:var(--border-neutral)}
.sheet .filters button:hover{color:var(--brand-primary);border-color:var(--brand-border);background:var(--brand-soft)}
.sheet .filters button[aria-pressed=true]{color:var(--surface);background:var(--brand-primary);border-color:var(--brand-primary);box-shadow:none}
.sheet .list-heading{color:var(--text-muted)}
.sheet .job-row{color:var(--text-primary);background:var(--surface);border-color:var(--border-neutral);box-shadow:none}
.sheet .job-row:hover{background:var(--brand-soft);border-color:var(--brand-border)}
.sheet .job-row .index,.sheet .job-row small{color:var(--text-muted)}
.sheet .job-row .pay,.sheet .salary{color:var(--text-primary)}
.sheet .job-row .arrow{color:var(--brand-primary)}
.sheet .job-row.visited small::after{color:var(--text-muted)}
.sheet .salary small{color:var(--text-muted)}
.sheet .tabs button{color:var(--text-secondary)}
.sheet .tabs button[aria-selected=true]{color:var(--brand-primary);border-color:var(--brand-primary)}
.sheet .job-body{color:var(--text-secondary)}
.sheet .job-body li::marker{color:var(--text-muted)}
.sheet .detail-footer>span,.sheet .apply-footer p,.sheet .apply-note{color:var(--text-muted)}
.sheet .application-job>span,.sheet .email-block>span,.sheet .subject-block>span{color:var(--text-muted)}
.sheet .application-job p{color:var(--text-primary)}
.sheet #copyStatus{color:var(--text-secondary)}
.primary,.sheet .primary{color:var(--surface);background:var(--brand-primary);border-color:var(--brand-primary);box-shadow:none}
.primary:hover,.sheet .primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.sheet :is(button,a,[tabindex]):focus-visible{outline-color:var(--brand-primary)}
.sheet :is(.job-list,.job-body,.apply-scroll){scrollbar-color:#9eacbf80 transparent}
.sheet :is(.job-list,.job-body,.apply-scroll):hover{scrollbar-color:var(--text-muted) transparent}
@supports selector(::-webkit-scrollbar){
 .sheet :is(.job-list,.job-body,.apply-scroll),.sheet :is(.job-list,.job-body,.apply-scroll):hover{scrollbar-color:auto}
 .sheet :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-thumb{background-color:#9eacbf80}
 .sheet :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}
 .sheet :is(.job-list,.job-body,.apply-scroll)::-webkit-scrollbar-thumb:active{background-color:var(--text-secondary)}
}
.sheet h2[tabindex='-1']:focus{outline:none}
@media(prefers-reduced-transparency:reduce){.sheet{background:var(--surface)}}

/* v18.11: edge-to-edge bottom drawers; scene blur remains behind the content. */
.sheet{z-index:2;left:0;right:0;top:auto;bottom:0;width:100%;height:86%;max-height:calc(100% - var(--ui-top));border-radius:var(--radius-panel) var(--radius-panel) 0 0;border:0;padding:22px max(18px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));box-shadow:0 -8px 32px #060a101a}
@media(max-height:690px){.sheet{padding-top:16px}}
@media(max-height:500px){.sheet{height:calc(100% - var(--ui-top));padding-top:12px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}}
.scene-focus{position:absolute;inset:0;z-index:0;pointer-events:none;background:rgba(5,23,46,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .32s var(--ease),visibility 0s .32s}
.experience[data-panel-open=true] .scene-focus{opacity:1;visibility:visible;transition-delay:0s}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 .experience[data-panel-open=true] :is(.scene-film,#hold){filter:blur(10px)}
}
@media(prefers-reduced-transparency:reduce){.scene-focus{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(5,23,46,.65)}}
@media(prefers-reduced-motion:reduce){.scene-focus{transition:none}}

/* v18.13: generated portal-glass material, with live accessible label and Kolo icon. */
#start{min-height:0;aspect-ratio:4.52;padding:0 25px 0 28px;border:0;border-radius:18px;background-color:transparent;background-image:url('assets-v19/portal-button-fast.webp');background-size:101% 154%;background-position:50% 36%;background-repeat:no-repeat;box-shadow:0 8px 20px #020d292b;backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate;transition:filter .2s,transform .15s}
#start:hover{filter:brightness(1.1)}
#start:active{filter:brightness(.94);transform:translateY(1px) scale(.985)}
#start:focus-visible{outline:2px solid #d5f4ff;outline-offset:4px}
#start .button-copy{position:relative;z-index:1}
#start .button-copy strong{color:#fff;font-size:20px;letter-spacing:.15em;text-shadow:0 2px 5px #081b68c2}
#start .button-arrow{position:relative;z-index:1;color:#e9faff;filter:drop-shadow(0 0 5px #8dcfff66)}
#start .kolo-next use{animation-name:portal-invitation-flow}
@keyframes portal-invitation-flow{0%,65%,100%{transform:translateX(0);opacity:.85}26%{transform:translateX(3px);opacity:1}45%{transform:translateX(0);opacity:.7}}
@media(max-height:690px){#start .button-copy strong{font-size:18px}}
@media(max-width:350px){#start{padding-inline:23px 19px;border-radius:15px}#start .button-copy strong{font-size:17px}}

/* v18.15: quiet jobs heading, edge-aligned native scrollbar, inset card content. */
#jobs{--list-inset-start:max(18px,env(safe-area-inset-left,0px));--list-inset-end:max(18px,env(safe-area-inset-right,0px));padding-bottom:0}
#jobs .sheet-heading{margin-bottom:16px}
#jobList{margin-left:calc(-1 * var(--list-inset-start));margin-right:calc(-1 * var(--list-inset-end));padding-left:var(--list-inset-start);padding-right:calc(var(--list-inset-end) - 8px);padding-bottom:max(20px,env(safe-area-inset-bottom,0px));scroll-padding-bottom:max(20px,env(safe-area-inset-bottom,0px));scrollbar-gutter:stable}
#jobList .job-row:last-child{margin-bottom:0}
@media(max-height:500px){#jobs .sheet-heading{margin-bottom:10px}}

/* v20: mobile poster hierarchy sized against the scene width, not browser height. */
.experience{container-type:inline-size}
.campaign{top:calc(7.2cqw + env(safe-area-inset-top,0px));left:6%;right:6%}
.campaign h1{margin:0 0 -5.5cqw;line-height:0}
.campaign h1 img{width:100%;height:auto;max-height:none;margin:0;object-fit:contain}
.campaign .slogan p{font-size:clamp(19px,6.2cqw,26px);line-height:1.25;gap:16px;margin:0;letter-spacing:.035em;text-shadow:0 2px 12px #001b48}
.campaign .slogan p>span{display:inline;width:auto;height:auto;background:none;transform:none}
.campaign .slogan small{display:none}
.brand{align-items:center}
.brand .campaign-year{gap:7px;opacity:.9;font-style:normal}
.brand .campaign-year b{font-size:15px;font-weight:500;letter-spacing:.06em}
.brand .campaign-year span{font-size:10px;letter-spacing:.12em}
.brand .campaign-year::before,.brand .campaign-year::after{content:none}
.experience:not([data-screen=intro]) .brand .campaign-year{visibility:hidden}
@media(max-height:500px){.campaign{left:50%;right:auto;width:min(76%,260px);transform:translateX(-50%);top:28px}.campaign .slogan p{font-size:18px}.brand .campaign-year b{font-size:13px}}

/* v22.1: global round music control; dimensions never flex or stretch. */
.brand .campaign-year{margin-left:auto}
#soundToggle{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;min-width:40px;max-width:40px;min-height:40px;max-height:40px;aspect-ratio:1;padding:0;box-sizing:border-box;border-radius:50%;border:1px solid #dce9ff70;background:linear-gradient(145deg,#4362ff66,#0d265d66);color:#fff;box-shadow:inset 0 1px 0 #ffffff24,0 3px 12px #05142d24;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .2s,border-color .2s}
#soundToggle:hover{border-color:#fff;background:#4362ff80}
#soundToggle:focus-visible{outline:2px solid #fff;outline-offset:4px}
#soundToggle .sound-disc{display:grid;place-items:center;width:24px;height:24px;transform-origin:50% 50%;animation:sound-disc-turn 8s linear infinite;animation-play-state:paused}
#soundToggle.is-playing .sound-disc{animation-play-state:running}
#soundToggle .sound-glyph{display:block;grid-area:1/1;width:22px;height:22px;flex:none}
#soundToggle .sound-off{display:none}
#soundToggle.is-muted .sound-on{display:none}
#soundToggle.is-muted .sound-off{display:block}
#soundToggle.is-muted{background:#10214066;border-color:#dce9ff40;color:#d1ddf0}
@keyframes sound-disc-turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#soundToggle .sound-disc{animation:none}}
@media(max-width:350px){.brand{gap:8px}.brand .campaign-year{gap:5px}.brand .campaign-year b{font-size:13px}.brand .campaign-year span{font-size:9px}}
