.deck{z-index:1;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;position:fixed;inset:0;overflow:hidden auto}.deck::-webkit-scrollbar{display:none}.deck:focus{outline:none}.slide{scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;justify-content:center;gap:clamp(10px,2vh,24px);max-width:1440px;min-height:100dvh;margin:0 auto;padding:clamp(20px,5vh,56px) clamp(16px,5vw,72px) clamp(80px,10vh,96px);display:flex;position:relative}.slide-title{font-family:var(--display);letter-spacing:-.01em;text-transform:uppercase;font-size:clamp(1.75rem,4vw,3.25rem);font-weight:700;line-height:1.05}.s-who{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);grid-template-areas:"photo body""time time";align-items:center;gap:clamp(16px,3vh,32px) clamp(16px,4vw,56px);display:grid}.who-photo{grid-area:photo;justify-self:center;margin:0;position:relative}.who-photo img{aspect-ratio:564/864;object-fit:cover;object-position:50% 0;width:auto;height:min(58dvh,540px);filter:var(--portrait-shadow);display:block;position:relative}.who-photo:after{content:"";background:radial-gradient(closest-side,var(--portrait-glow),#f26b1d00);filter:blur(14px);z-index:-1;pointer-events:none;border-radius:50%;height:70%;position:absolute;bottom:-10%;left:-12%;right:-12%}.who-body{flex-direction:column;grid-area:body;gap:8px;display:flex}.who-name{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;font-size:clamp(2.25rem,5.4vw,5rem);font-weight:700;line-height:.95}.who-name .l1{color:#0000;-webkit-text-stroke:clamp(1.5px,.18vw,2.5px) var(--fg);margin-right:.18em}.who-full{color:var(--text-muted)}.who-role{font-size:1.25rem;font-weight:600}.who-affil{color:var(--ink-2)}.who-pos{max-width:40rem;color:var(--text-muted)}.s-who .eyebrow{margin-top:6px}.s-who .chips{margin-top:4px}.timeline{border-top:2px solid var(--line);grid-area:time;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0;padding:18px 0 0;list-style:none;display:grid}.timeline li{color:var(--ink-2);font-size:.875rem;line-height:1.45;position:relative}.timeline li:before{content:"";background:var(--signal);width:12px;height:12px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:-25px;left:0}.timeline b{font-family:var(--mono);color:var(--fg);font-weight:500;display:block}.s-research{--jgap:clamp(12px,1.5vw,24px);--jband:26px;gap:var(--jgap);padding:var(--jband) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;list-style:none;display:grid;position:relative}.s-research:before{content:"";top:calc(var(--jband) / 2 - 1px);left:calc((100% - 2 * var(--jgap)) / 6);right:calc((100% - 2 * var(--jgap)) / 6);background:var(--signal);border-radius:2px;height:2px;position:absolute}.rcol{background:var(--surface);border-radius:var(--r-md);min-width:0;box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;gap:clamp(6px,1.1vh,12px);padding:clamp(10px,1.6vh,18px);display:flex;position:relative}.rcol:before{content:"";top:calc(var(--jband) / -2 - 8px);border:2px solid var(--signal);background:var(--bg);border-radius:50%;width:16px;height:16px;margin-left:-8px;position:absolute;left:50%}.rcol:last-child:before{background:var(--signal);box-shadow:0 0 0 4px var(--signal-tint)}.rcol:last-child{box-shadow:0 0 0 1.5px var(--hot-line),var(--shadow)}.rcol-art{border-radius:calc(var(--r-md) - 8px);background:var(--fig-bg);border:1px solid var(--line);align-self:stretch}.rcol-art svg{width:100%;height:clamp(96px,22vh,220px);display:block}.rcol-level{border-radius:var(--r-tag);background:var(--signal-tint);border:1px solid var(--hot-line);color:var(--hot-ink);font-family:var(--mono);padding:2px 10px;font-size:clamp(.8125rem,1.8vh,.9375rem);font-weight:500;line-height:1.5}html[lang=th] .rcol-level{font-family:var(--font)}.rcol h3{font-size:clamp(1.125rem,2.8vh,1.5rem);font-weight:700;line-height:1.25}.rcol-desc{color:var(--ink-2);font-size:clamp(.9375rem,2.25vh,1.125rem);line-height:1.45}.rcol .chips{gap:6px;margin:auto 0 0}.rcol .chips li{background:var(--chip);padding:3px 12px;font-size:clamp(.875rem,2.1vh,1rem);line-height:1.45}html[lang=th] .rcol h3{line-height:1.45}html[lang=th] .rcol-desc{line-height:1.6}.s-papers{color:var(--text-muted);font-size:clamp(.8125rem,1.75vh,.875rem);line-height:1.5}.build-period{color:var(--text-muted)}.systems{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.systems .card{padding:18px}.systems h3{margin-top:10px;font-size:1.0625rem}.systems p{color:var(--ink-2);margin-top:4px;font-size:.9375rem}.skills4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.skills4 h3{font-size:1rem}.skills4 .chips{gap:6px;margin-top:8px}.skills4 .chips li{padding:3px 10px;font-size:.875rem}.build-extras{color:var(--ink-2);font-size:.9375rem}.build-contact{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.build-contact .socials{justify-content:flex-start;margin:0}@media (max-height:900px){.slide{gap:clamp(6px,1.2vh,16px);padding-top:clamp(16px,3.5vh,40px);padding-bottom:80px}.systems{gap:8px}.systems .card{padding:12px}.skills4{gap:8px}.build-contact{gap:6px 12px}}@media (max-height:760px),(min-width:901px) and (max-width:1180px){.slide{padding:clamp(10px,2vh,56px) clamp(10px,2.5vw,40px) 74px}.slide-title{font-size:clamp(1.375rem,2.6vw,2.25rem);line-height:1.1}.systems{gap:8px}.systems .card{padding:10px}.systems h3{margin-top:6px;font-size:.9375rem}.systems p{margin-top:2px;font-size:.8125rem}.skills4{gap:8px}.skills4 h3{font-size:.8125rem}.skills4 .chips{gap:4px;margin-top:4px}.skills4 .chips li{padding:2px 8px;font-size:.75rem}.build-extras{font-size:.8125rem}.build-contact{gap:6px 10px}}.deck-bar{z-index:50;background:var(--surface);border-radius:var(--r-pill);box-shadow:var(--shadow-nav);align-items:center;gap:6px;padding:6px;display:flex;position:fixed;bottom:16px;right:16px}.deck-btn{min-width:var(--tap);min-height:var(--tap);border-radius:var(--r-pill);background:var(--chip);height:auto;color:var(--fg);cursor:pointer;transition:background-color var(--dur-hover),color var(--dur-hover);border:0;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:.9375rem;font-weight:600;display:inline-flex}.deck-btn:hover{background:var(--inv-bg);color:var(--inv-fg)}.deck-btn:disabled{opacity:.45;cursor:default}.deck-count{text-align:center;min-width:5ch;font-family:var(--mono);color:var(--text-muted);font-size:.875rem}.deck-hint{z-index:50;color:var(--text-muted);font-size:.8125rem;position:fixed;bottom:28px;left:16px}.notes{z-index:55;background:var(--surface);border-radius:var(--r-md);max-width:760px;box-shadow:var(--shadow-lift);margin:0 auto;padding:16px 20px;position:fixed;bottom:84px;left:16px;right:16px}.notes[hidden],.deck[data-fullscreen=unsupported]~.deck-bar .deck-full{display:none}@media (min-width:901px) and (max-width:1180px){.deck-hint{display:none}.rcol h3{font-size:1.125rem}}@media (max-width:900px){.s-who{grid-template-columns:minmax(0,1fr);grid-template-areas:"photo""body""time"}.who-photo img{height:min(38dvh,340px)}.timeline{border-top:0;grid-template-columns:minmax(0,1fr);gap:8px;padding-top:0}.timeline li{padding-left:22px}.timeline li:before{top:5px}.s-research{grid-template-columns:minmax(0,1fr);padding-top:0}.s-research:before,.rcol:before{display:none}.rcol-art svg{height:min(180px,46vw)}.systems,.skills4{grid-template-columns:minmax(0,1fr)}.deck-hint{display:none}}@media (max-width:640px){.deck-full-t{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media print{.deck{position:static;overflow:visible}.slide{break-after:page;min-height:auto}.deck-bar,.deck-hint,.notes,.sky{display:none}}.deck-home-i,.deck-home-s{display:none}@media (max-width:640px){.deck-bar{gap:4px}.deck-home{gap:6px;padding:0 10px 0 8px}.deck-home-i{flex:none;width:16px;height:16px;display:block}.deck-home-s{display:inline}.deck-home-t{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (max-width:360px){.deck-home{min-width:var(--tap);justify-content:center;padding:0}.deck-home-s{display:none}}.rcol-trigger{width:100%;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;margin:0;padding:0;display:block}.rcol-trigger:after{content:"";z-index:1;border-radius:var(--r-md);position:absolute;inset:0}.rcol-open{z-index:2;background:var(--surface);width:40px;height:40px;color:var(--fg);box-shadow:0 0 0 1px var(--line);pointer-events:none;transition:background-color var(--dur-hover),color var(--dur-hover),box-shadow var(--dur-hover);border-radius:50%;place-items:center;display:grid;position:absolute;top:calc(clamp(10px,1.6vh,18px) + 8px);right:calc(clamp(10px,1.6vh,18px) + 8px)}.rcol-open .i{width:16px;height:16px}.rcol{transition:box-shadow var(--dur-card),transform var(--dur-card)}.rcol:hover{box-shadow:var(--shadow-lift)}.rcol:last-child:hover{box-shadow:0 0 0 1.5px var(--hot-line),var(--shadow-lift)}.rcol:hover .rcol-open{background:var(--inv-bg);color:var(--inv-fg);box-shadow:none}@media (prefers-reduced-motion:no-preference){.rcol:hover{transform:translateY(-2px)}}.sheet-art{border-radius:var(--r-fig);background:var(--fig-bg);border:1px solid var(--line);margin-top:18px;padding:10px}.sheet-art svg{width:100%;height:clamp(120px,24vh,196px);display:block}.intro-sheet .sheet-sec h3{margin-top:24px}.intro-sheet .summary{margin-top:8px}.intro-sheet .status{margin-top:24px}@media print,(max-width:900px){.rcol-open{display:none}}@keyframes draw{0%{transform:scaleX(0)}to{transform:none}}.who-photo{isolation:isolate}@media (prefers-reduced-motion:no-preference){.who-photo{animation:rise 1s var(--ease-signal) .1s both}.who-body>*{animation:.6s ease-out .45s both up}.who-body>:nth-child(2){animation-delay:.53s}.who-body>:nth-child(3){animation-delay:.61s}.who-body>:nth-child(4){animation-delay:.69s}.who-body>:nth-child(5){animation-delay:.77s}.who-body>:nth-child(6){animation-delay:.85s}.who-body>:nth-child(7){animation-delay:.93s}.who-body>:nth-child(8){animation-delay:1.01s}.timeline li{animation:.5s ease-out 1s both up}.timeline li:nth-child(2){animation-delay:1.06s}.timeline li:nth-child(3){animation-delay:1.12s}.timeline li:nth-child(4){animation-delay:1.18s}.timeline li:nth-child(5){animation-delay:1.24s}.timeline li:nth-child(6){animation-delay:1.3s}.deck[data-ready] .slide-research:not([data-seen]) :is(.slide-title,.rcol>*,.s-papers),.deck[data-ready] .slide-research:not([data-seen]) .rcol:before,.deck[data-ready] .slide-build:not([data-seen]) :is(.slide-title,.build-period,.systems li.card,.skill4,.build-extras,.build-contact){opacity:0}.deck[data-ready] .slide-research:not([data-seen]) .s-research:before{transform:scaleX(0)}.s-research:before{transform-origin:0}.rcol:first-child{--col-d:.25s}.rcol:nth-child(2){--col-d:.6s}.rcol:nth-child(3){--col-d:.95s}.rcol>:nth-child(2){--in-col:1}.rcol>:nth-child(3){--in-col:2}.rcol>:nth-child(4){--in-col:3}.rcol>:nth-child(5){--in-col:4}.rcol>:nth-child(6){--in-col:5}.slide-research[data-seen] .slide-title{animation:.5s ease-out both up}.slide-research[data-seen] .s-research:before{animation:.9s ease-out .1s both draw}.slide-research[data-seen] .rcol:before{animation:.35s ease-out .2s both pop}.slide-research[data-seen] .rcol:nth-child(2):before{animation-delay:.55s}.slide-research[data-seen] .rcol:nth-child(3):before{animation-delay:.9s}.slide-research[data-seen] .rcol>*{animation:.5s ease-out backwards up;animation-delay:calc(var(--col-d,0s) + var(--in-col,0) * 60ms)}.slide-research[data-seen] .s-papers{animation:.4s ease-out 1.4s both fadein}.slide-build[data-seen] .slide-title{animation:.5s ease-out both up}.slide-build[data-seen] .build-period{animation:.5s ease-out 80ms both up}.slide-build[data-seen] .systems li.card{animation:.5s ease-out .15s backwards up}.slide-build[data-seen] .systems li.card:nth-child(2){animation-delay:.23s}.slide-build[data-seen] .systems li.card:nth-child(3){animation-delay:.31s}.slide-build[data-seen] .skill4{animation:.5s ease-out .45s both up}.slide-build[data-seen] .skill4:nth-child(2){animation-delay:.53s}.slide-build[data-seen] .skill4:nth-child(3){animation-delay:.61s}.slide-build[data-seen] .skill4:nth-child(4){animation-delay:.69s}.slide-build[data-seen] .build-extras{animation:.4s ease-out .9s both fadein}.slide-build[data-seen] .build-contact{animation:.4s ease-out 1s both fadein}}@media print{[data-slide] *,[data-slide] :before{opacity:1!important;animation:none!important}.s-research:before{transform:none!important}}
