@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/schibsted-grotesk-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg:#1f2a2e;--fg:#f9fbfb;--panel:#263439;--line:#33454b;--line-ui:#6b8086;--mute:#a9bbbf;--soft:#d3dee0;--accent:#7cc3cf;--butter-text:#d9b45c;--teal:#4a9baa;--teal-hi:#7cc3cf;--butter:#d9b45c;--butter-pale:#f5e9cc;--ink:#1f2a2e;--paper:#f9fbfb;--ease-out:cubic-bezier(.23, 1, .32, 1);--font:"Schibsted Grotesk", "Noto Sans TC", system-ui, sans-serif;--cut:.7}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);color:var(--fg);font-family:var(--font);margin:0;font-size:17px;line-height:1.55}:lang(zh-Hant-TW) body{line-height:1.75}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}h1,h2,h3{text-wrap:balance}.row-n,.stage-pos{font-variant-numeric:tabular-nums}a{color:var(--accent);text-underline-offset:3px}:focus-visible{outline:3px solid var(--butter);outline-offset:3px}img,svg{max-width:100%}.wrap{max-width:1180px;margin:0 auto;padding:0 24px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{background:var(--butter);color:var(--ink);z-index:20;padding:8px 14px;font-weight:700;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.draft{background:var(--butter);color:var(--ink);text-align:center;padding:6px 12px;font-size:14px;font-weight:600}.bar{height:10px;clip-path:polygon(calc(10px * var(--cut)) 0, 100% 0, calc(100% - 10px * var(--cut)) 100%, 0 100%);display:inline-block}.bar.t{background:var(--teal)}.bar.b{background:var(--butter)}.site-head{padding:20px 0}.site-head .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.mark{color:var(--fg);letter-spacing:-.01em;align-items:center;gap:12px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.mark .bars{gap:4px;display:grid}.site-nav ul{flex-wrap:wrap;align-items:center;gap:22px;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--soft);font-weight:600;text-decoration:none}.site-nav a:hover{color:var(--fg)}.site-nav a[aria-current=page]{color:var(--fg);text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:2px}.lang{border:1.5px solid var(--line);padding:3px 10px}.key{color:var(--mute);flex-wrap:wrap;gap:18px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.key li{align-items:center;gap:8px;display:flex}.sym{width:18px;height:8px;clip-path:polygon(calc(8px * var(--cut)) 0, 100% 0, calc(100% - 8px * var(--cut)) 100%, 0 100%);flex:none;display:inline-block}.sym.auto{background:var(--teal)}.sym.mine{background:var(--butter)}.tag{vertical-align:middle;color:var(--ink);letter-spacing:0;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.tag.demo{background:var(--butter)}.tag.live{background:var(--teal-hi)}.tag.done,.tag.use,.tag.oss,.tag.ongoing{color:var(--soft);box-shadow:inset 0 0 0 1px var(--line-ui);background:0 0}.run{border-top:1px solid var(--line);color:var(--soft);align-items:center;gap:10px;margin:12px 0 0;padding-top:10px;font-size:14px;display:flex}.run .tag{flex:none;margin-left:0}.run-t{color:var(--fg);font-weight:600}.run-bars{flex:none;gap:3px;display:inline-grid;transform:translateY(-2px)}.run-bars i{background:var(--teal);clip-path:polygon(2.8px 0,100% 0,calc(100% - 2.8px) 100%,0 100%);width:18px;height:4px;display:block}.run-bars i+i{margin-left:4px}.run-story{border-top:0;margin:-32px 0 48px;padding-top:0}.hero{grid-template-columns:1fr 1fr;align-items:center;gap:48px;padding-top:48px;padding-bottom:56px;display:grid}.hero h1{letter-spacing:-.035em;margin:0 0 20px;font-size:clamp(44px,6.4vw,84px);font-weight:800;line-height:.98}:lang(zh-Hant-TW) .hero h1{letter-spacing:-.02em}.hero .role-line{letter-spacing:.01em;color:var(--accent);margin:-6px 0 18px;font-size:15px;font-weight:700}.hero .role-line span{white-space:nowrap}.hero .headline{max-width:30ch;margin:0 0 14px;font-size:clamp(20px,2.1vw,25px);font-weight:600;line-height:1.35}.hero .subline{color:var(--mute);max-width:46ch;margin:0 0 24px}.section-head{border-top:2px solid var(--fg);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;padding-top:14px;display:flex}.section-head h2{letter-spacing:-.015em;margin:0;font-size:28px}.section-head p{color:var(--mute);margin:0}.more-coming{border-left:3px solid var(--mute);color:var(--soft);margin:22px 0 0;padding-left:14px;font-size:15px}.grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:300px;gap:14px;margin-bottom:72px;padding:0;list-style:none;display:grid}.tile{background:var(--panel);position:relative;overflow:hidden}.tile a{color:var(--fg);transition:transform .16s var(--ease-out);flex-direction:column;gap:8px;padding:16px 18px 18px;text-decoration:none;display:flex;position:absolute;inset:0}.tile a:active{transform:scale(.98)}.tile .fig{flex:auto;min-height:0;position:relative}.tile .fig .anim{width:100%;height:100%}.tile .txt{flex:none}.tile .where{color:var(--mute);font-size:13px}.tile h3{letter-spacing:-.01em;margin:2px 0 4px;font-size:19px;line-height:1.15}.tile .k{letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.05}.tile .sub{color:var(--mute);font-size:13px}.tile .line{color:var(--soft);max-width:46ch;margin:0 0 8px;font-size:15px;display:none}.tile .go{text-underline-offset:4px;text-decoration:underline;text-decoration-color:var(--teal);margin-top:10px;font-size:14px;font-weight:700;display:none}.tile.big{grid-area:span 2/span 2}.tile.big h3{font-size:28px}.tile.big .k{font-size:44px}.tile.big .line,.tile.big .go,.tile.wide .go{display:block}.tile.wide{grid-column:span 2}.tile.wide a{flex-direction:row;align-items:center;gap:20px}.tile.wide .fig{flex:50%;height:100%}.tile.wide .txt{flex:50%}@media (hover:hover) and (pointer:fine){.tile a:hover h3{text-decoration:underline;text-decoration-color:var(--teal);text-underline-offset:5px}}.contact{border-top:2px solid var(--fg);grid-template-columns:1fr 1.4fr;gap:32px;padding-top:14px;padding-bottom:40px;display:grid}.contact h2{margin:0;font-size:28px}.contact p{max-width:40ch;margin:0 0 18px;font-size:20px;line-height:1.45}.cta{background:var(--fg);color:var(--bg);clip-path:polygon(calc(46px * var(--cut)) 0, 100% 0, calc(100% - 46px * var(--cut)) 100%, 0 100%);transition:transform .16s var(--ease-out);padding:12px 30px;font-weight:800;text-decoration:none;display:inline-block}.cta:active{transform:scale(.97)}.links{flex-wrap:wrap;gap:22px;margin:18px 0 0;padding:0;list-style:none;display:flex}.site-foot{border-top:1px solid var(--line);color:var(--mute);padding:22px 0 48px;font-size:14px}.site-foot .wrap{flex-wrap:wrap;justify-content:space-between;gap:20px;display:flex}.site-foot p{max-width:62ch;margin:0}.story-head{padding-top:36px;padding-bottom:28px}.mine-line{margin:0 0 10px}.mine-line b{color:var(--butter-text);margin-right:4px;font-weight:800}.back{color:var(--soft);margin-bottom:26px;font-weight:600;display:inline-block}.story-head .where{color:var(--mute);margin:0 0 6px}.story-head h1{letter-spacing:-.03em;margin:0 0 18px;font-size:clamp(38px,5.4vw,68px);line-height:1}.story-head .one{max-width:38ch;margin:0 0 10px;font-size:clamp(19px,2vw,24px);line-height:1.35}.story-head .role{color:var(--mute);margin:0;font-size:15px}.impact{border-top:2px solid var(--fg);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:48px;display:grid}.impact div{padding:18px 20px 20px 0}.impact div+div{border-left:1px solid var(--line);padding-left:20px}.impact strong{letter-spacing:-.025em;font-size:clamp(34px,4.4vw,54px);line-height:1;display:block}.impact span{color:var(--mute);font-size:15px}.story-body{grid-template-columns:220px 1fr;gap:12px 40px;padding-bottom:32px;display:grid}.story-body h2{color:var(--accent);margin:4px 0 0;font-size:17px}.story-body .h-mine{color:var(--butter-text)}.story-body .col p{max-width:64ch;margin:0 0 14px}.story-body .col{border-bottom:1px solid var(--line);margin-bottom:8px;padding-bottom:28px}.flow{counter-reset:step;margin:0 0 18px;padding:0;list-style:none}.flow li{counter-increment:step;grid-template-columns:36px 1fr;gap:14px;padding:0 0 18px;display:grid;position:relative}.flow li:before{content:"";background:var(--teal);width:4px;position:absolute;top:26px;bottom:0;left:13px}.flow li.mine:before{background:var(--butter)}.flow li:last-child:before{display:none}.flow .dot{border:4px solid var(--teal);background:var(--bg);width:30px;height:30px;color:var(--accent);place-items:center;font-size:12px;font-weight:800;display:grid}.flow li.mine .dot{border-color:var(--butter);color:var(--butter-text);background:var(--bg)}.flow .lbl{font-weight:700}.flow .tool{color:var(--mute);font-size:14px;font-weight:400;display:block}.story-fig{aspect-ratio:16/10;background:var(--panel);margin-bottom:18px;padding:14px}.story-fig .anim{height:100%}.next{border-top:2px solid var(--fg);flex-wrap:wrap;justify-content:space-between;gap:20px;margin-bottom:64px;padding-top:16px;display:flex}.next a{font-weight:700}.resume{padding-bottom:48px}.resume h1{letter-spacing:-.03em;margin:36px 0 8px;font-size:clamp(38px,5vw,60px)}.resume .lede{color:var(--mute);margin:0 0 28px}.resume .summary{max-width:70ch;margin:0 0 40px;font-size:19px}.resume h2{color:var(--accent);border-top:2px solid var(--fg);margin:40px 0 8px;padding-top:12px;font-size:15px}.r-role{border-bottom:1px solid var(--line);grid-template-columns:260px 1fr;gap:8px 36px;padding:18px 0;display:grid}.r-role h3{margin:0;font-size:20px}.r-role .meta{color:var(--mute);margin:2px 0 0;font-size:14px}.r-role ul{margin:0;padding:0;list-style:none}.r-role li{max-width:72ch;margin-bottom:10px;padding-left:22px;position:relative}.r-role li:before{content:"";background:var(--mute);width:7px;height:7px;position:absolute;top:.62em;left:0}.r-role li a{color:var(--fg);text-decoration-color:var(--teal);font-weight:800;text-decoration-thickness:2px}.r-skills{grid-template-columns:260px 1fr;gap:6px 36px;display:grid}.r-skills dt{font-weight:700}.r-skills dd{color:var(--soft);margin:0 0 12px}.js .anim:not(.in-view) *{animation-play-state:paused!important}@media (width<=900px){.hero{grid-template-columns:1fr;gap:28px;padding-top:28px}.grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:290px}.tile.wide{grid-column:span 2}.contact,.story-body,.r-role,.r-skills,.impact{grid-template-columns:1fr}.impact div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}}@media (width<=560px){.grid{grid-template-columns:1fr;grid-auto-rows:auto}.tile,.tile.big,.tile.wide{grid-area:span 1/span 1}.tile a{position:static}.tile .fig{aspect-ratio:4/3;flex:none}.tile.wide a{flex-direction:column;align-items:stretch}.tile.wide .fig{height:auto}.tile.big .k{font-size:34px}}.work{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:40px;margin-bottom:80px;display:grid}.rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);transition:opacity .2s var(--ease-out)}.row.hit .row-link:before{opacity:1;background:var(--butter)}.row-link{color:var(--soft);grid-template-columns:34px minmax(0,1fr) auto;align-items:baseline;gap:14px;padding:16px 6px;text-decoration:none;display:grid;position:relative}.row-link:before{content:"";background:var(--teal);opacity:0;width:3px;transition:opacity .16s var(--ease-out);position:absolute;top:0;bottom:-1px;left:0}.row.on .row-link{color:var(--fg)}.row.on .row-link:before{opacity:1}.row-n{color:var(--mute);padding-left:8px;font-size:14px;font-weight:700}.row.on .row-n{color:var(--accent)}.row-title{letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.2;display:block}.row-where{color:var(--mute);margin-top:2px;font-size:13px;display:block}.row-steps{gap:3px;max-width:200px;margin-top:8px;display:flex}.row-steps i{background:var(--teal);clip-path:polygon(4.2px 0,100% 0,calc(100% - 4.2px) 100%,0 100%);flex:1;height:6px}.row-steps i.m{background:var(--butter)}.key-work{margin:-6px 0 16px;font-size:13px}.row-k{letter-spacing:-.015em;white-space:nowrap;color:var(--fg);text-align:right;font-size:20px;font-weight:800}.row-k small{letter-spacing:0;color:var(--mute);white-space:normal;max-width:190px;margin-top:3px;margin-left:auto;font-size:12.5px;font-weight:500;line-height:1.3;display:block}.row-where b{color:var(--soft);font-weight:600}.showing{color:var(--soft);min-height:21px;margin:0 0 14px;font-size:14px}.fit{width:max-content;color:var(--butter-text);margin-top:4px;font-size:12px;font-weight:700;display:block}.showing-all{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px 0 4px 6px;font-size:14px;font-weight:700;text-decoration:underline}.showing-all:focus-visible{outline:3px solid var(--butter);outline-offset:2px}@media (hover:hover) and (pointer:fine){.row-link:hover{color:var(--fg)}}.stage{background:var(--panel);padding:16px 20px 22px;position:sticky;top:24px}.stage-bar{color:var(--mute);align-items:center;gap:12px;margin-bottom:12px;font-size:13px;display:flex}.stage-track{background:var(--line);flex:1;height:3px;position:relative;overflow:hidden}.stage-fill{background:var(--teal);transform-origin:0;transition:transform .3s var(--ease-out);position:absolute;inset:0;transform:scaleX(.14)}.stage-fig{aspect-ratio:16/11}.stage-fig .anim{height:100%}.stage h3{letter-spacing:-.015em;margin:16px 0 6px;font-size:26px;line-height:1.15}.stage-line{color:var(--soft);max-width:52ch;margin:0 0 10px}.stage-k{border-left:5px solid var(--butter);margin:0 0 12px;padding:4px 0 4px 14px}.stage-k .k{letter-spacing:-.02em;color:var(--butter-text);margin-right:6px;font-size:32px;font-weight:800}.stage-k .sub{color:var(--mute);font-size:14px}.stage-go{color:var(--fg);text-decoration-color:var(--teal);font-weight:700;text-decoration-thickness:2px}.ask{border-top:2px solid var(--fg);grid-template-columns:1fr 1.4fr;gap:32px;margin-bottom:72px;padding-top:14px;display:grid}.ask h2{margin:0 0 8px;font-size:28px}.ask-lede{color:var(--soft);max-width:40ch;margin:0 0 12px}.soon{color:var(--ink);background:var(--butter);margin:0;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.ask-box{background:var(--panel);padding:18px}.ask-row{gap:8px;display:flex}.ask-row input{min-width:0;font:inherit;background:var(--bg);color:var(--fg);border:1.5px solid var(--line);flex:1;padding:12px 14px}.ask-row input::placeholder{color:var(--mute)}.ask-row button{font:inherit;background:var(--line);color:var(--mute);border:0;padding:0 20px;font-weight:700}.ask-eg{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.ask-eg li{color:var(--soft);border:1px solid var(--line);padding:4px 10px;font-size:13px}.ask-note{color:var(--mute);margin:10px 0 0;font-size:13px}.video-slot{border:1.5px dashed var(--line);flex-wrap:wrap;align-items:center;gap:16px;margin:-24px 0 48px;padding:22px;display:flex}.video-slot p{color:var(--mute);margin:0}.story-fig{position:relative}.fig-pause{z-index:1;background:var(--bg);position:absolute;top:10px;right:10px}.lang-soon{color:var(--mute);cursor:default;font-weight:600}.soon-tag{color:var(--butter-text);margin-left:2px;font-size:11px;font-weight:700}.resume-actions{flex-wrap:wrap;gap:10px;margin:0 0 28px;display:flex}.pill-soon{border:1.5px solid var(--line);color:var(--soft);padding:6px 14px;font-size:15px;font-weight:600;text-decoration:none;display:inline-block}@media (width<=900px){.work{grid-template-columns:1fr;gap:20px}.stage{order:-1;position:static}.ask{grid-template-columns:1fr}}@media (width<=560px){.row-link{grid-template-columns:28px minmax(0,1fr)}.row-k{grid-column:2;font-size:18px}}@media (width>=901px){.hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}}.mm{background:var(--panel);flex-direction:column;gap:12px;padding:18px 20px 16px;display:flex}.mm-head{align-items:center;gap:12px;display:flex}.mm-avatar{background:var(--bg);flex:none;align-content:center;gap:5px;width:44px;height:44px;padding-left:8px;display:grid}.mm h2{letter-spacing:-.01em;margin:0;font-size:20px}.mm-role{color:var(--mute);margin:0;font-size:13px}.mm-log{flex-direction:column;gap:8px;display:flex}.mm-msg{max-width:92%;margin:0;font-size:16px;line-height:1.45}.mm-bot,.mm-log>p.mm-msg:not(.mm-you){background:var(--bg);align-self:flex-start;padding:10px 14px}.mm-bot p{margin:0 0 8px}.mm-you{background:var(--teal);color:var(--ink);align-self:flex-end;padding:8px 14px;font-weight:600}.mm-typing{color:var(--mute);letter-spacing:2px}.mm-picks{gap:8px;margin:4px 0 8px;display:grid}.mm-pick{border:1.5px solid var(--line);color:var(--fg);grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 12px;text-decoration:none;transition:border-color .16s;display:grid}.mm-pick-t{font-weight:700}.mm-pick{border-left:5px solid var(--butter)}.mm-pick-k{white-space:nowrap;color:var(--butter-text);font-weight:800}.mm-pick-why{color:var(--soft);grid-column:1/-1;font-size:14px}@media (hover:hover) and (pointer:fine){.mm-pick:hover{border-color:var(--teal)}}.mm-more{font-size:14px;font-weight:600}.mm-chips{flex-wrap:wrap;gap:8px;display:flex}.mm-chip{font:inherit;color:var(--fg);border:1.5px solid var(--teal);cursor:pointer;transition:transform .16s var(--ease-out), background .16s ease;background:0 0;padding:7px 14px;font-size:14px;font-weight:700}.mm-chip:active{transform:scale(.97)}.mm-chip[aria-pressed=true]{background:var(--teal);color:var(--ink)}@media (hover:hover) and (pointer:fine){.mm-chip:not([aria-pressed=true]):hover{background:var(--line)}}.mm-search{gap:8px;display:flex}.mm-search input{min-width:0;font:inherit;background:var(--bg);color:var(--fg);border:1.5px solid var(--line-ui);flex:1;padding:11px 14px;font-size:16px}.mm-search input::placeholder{color:var(--mute)}.mm-search input:focus-visible{outline:3px solid var(--butter);outline-offset:1px}.mm-search button{font:inherit;background:var(--fg);color:var(--bg);cursor:pointer;transition:transform .16s var(--ease-out);border:0;padding:0 18px;font-weight:800}.mm-search button:active{transform:scale(.97)}.mm-note{color:var(--mute);margin:0;font-size:12px}.mm-face{width:var(--s);height:var(--s);flex:none;display:inline-block}.mm-face svg{display:block}.mm-face-bg{fill:var(--bg)}.mm-ring{opacity:.7;transition:opacity .24s}.mm-core,.mm-sat{transform-box:fill-box;transform-origin:50%}.mm-orbit{transform-box:view-box;transform-origin:50%;transition:opacity .24s;animation:14s linear infinite mm-spin}@keyframes mm-spin{to{transform:rotate(360deg)}}.mm-face[data-state=listen] .mm-orbit{animation-play-state:paused}.mm-face[data-state=thinking] .mm-orbit{animation-duration:4s}.mm-face[data-state=happy] .mm-sat{animation:.56s cubic-bezier(.34,1.56,.64,1) mm-pop}.mm-face[data-state=happy] .mm-core{animation:.56s cubic-bezier(.34,1.56,.64,1) 80ms mm-pop}@keyframes mm-pop{0%,to{transform:scale(1)}40%{transform:scale(1.3)}}.mm-face[data-state=none] .mm-orbit{opacity:.45;animation-duration:28s}.mm-face[data-state=none] .mm-ring{opacity:.3}.mm-head{gap:14px}.mm-dot{background:var(--teal);vertical-align:1px;width:7px;height:7px;margin-right:6px;display:inline-block}.mm-ask{letter-spacing:-.01em;font-size:20px;font-weight:800;line-height:1.25}.mm-bot p.mm-ask{margin:0}.mm-row.mm-greet{animation:none}.mm-row{animation:mm-in .22s var(--ease-out) both;align-items:flex-start;gap:10px;display:flex}.mm-row .mm-bot{max-width:100%}.mm-you{animation:mm-in .2s var(--ease-out) both}@keyframes mm-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mm-typing{gap:5px;padding:6px 0}.mm-typing span{background:var(--teal);clip-path:polygon(3px 0,100% 0,calc(100% - 3px) 100%,0 100%);width:12px;height:5px;animation:.9s ease-in-out infinite mm-dots}.mm-typing span:nth-child(2){background:var(--teal-hi);animation-delay:.15s}.mm-typing span:nth-child(3){background:var(--butter);animation-delay:.3s}@keyframes mm-dots{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.mm-follow{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.mm-chip-sm{border-color:var(--line-ui);color:var(--soft);padding:5px 11px;font-size:13px}@media (prefers-reduced-motion:reduce){.mm-orbit,.mm-sat,.mm-core,.mm-typing span,.mm-row,.mm-you{animation:none!important}.mm-ring,.mm-orbit{transition:none}}.cta:focus-visible{box-shadow:inset 0 0 0 3px var(--butter);outline:none}.site-nav a,.links a,.stage-go,.back,.mm-more,.next a{padding:6px 0;display:inline-block}@media (pointer:coarse){.site-nav a,.links a,.stage-go,.back,.mm-more,.next a{padding:11px 0}.site-nav ul{gap:4px 18px}}@media (width<=560px){.site-head{padding:12px 0}.site-nav ul{gap:2px 16px}.lang-soon{display:none}.hero{gap:16px;padding-top:12px}.hero h1{margin-bottom:10px;font-size:40px}.hero .role-line{margin:-2px 0 10px;font-size:14px}.hero .headline{margin-bottom:0;font-size:18px}.hero .key{display:none}.hero .subline{margin:10px 0 0;font-size:15px}.mm{padding:14px 14px 12px}}.sf{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:start;gap:36px;display:grid}.sf-fig{position:sticky;top:24px}.sf-fig svg{width:100%;height:auto;max-height:calc(100vh - 48px);display:block}.sf-mini{display:none}.sf-rail{fill:var(--butter);opacity:.25;transition:opacity .3s var(--ease-out)}.sf.human-on .sf-rail{opacity:1}.sf-rail-l{font:700 11px var(--font);fill:var(--butter-text)}.sf-box{fill:var(--bg);stroke:var(--line);stroke-width:2px;transition:fill .22s var(--ease-out), stroke .22s var(--ease-out)}.sf-t{font:700 15px var(--font);fill:var(--mute);transition:fill .22s}.sf-tool{font:400 12px var(--font);fill:var(--mute)}.sf-link{stroke:var(--line);stroke-width:3px;transition:stroke .22s}.sf-node.done .sf-box{stroke:var(--teal)}.sf-node.done .sf-t{fill:var(--soft)}.sf-node.on .sf-box{fill:var(--teal);stroke:var(--teal)}.sf-node.on .sf-t,.sf-node.on .sf-tool{fill:var(--ink)}.sf-link.done,.sf-link.on,.sf.human-on .sf-node .sf-box{stroke:var(--teal)}.sf-check{opacity:0;transition:opacity .22s var(--ease-out)}.sf-check circle{fill:var(--butter)}.sf-check polyline{fill:none;stroke:var(--ink);stroke-width:3px}.sf-check.done,.sf-check.on,.sf.human-on .sf-check{opacity:1}.sf-out-t{font:800 20px var(--font);fill:var(--fg)}.sf-link-out{stroke:var(--line)}.sf.human-on .sf-link-out{stroke:var(--teal)}.sf-steps{margin:0;padding:24vh 0 40vh;list-style:none}.sf-step{border-left:3px solid var(--line);opacity:.75;min-height:46vh;transition:opacity .22s var(--ease-out), border-color .22s ease;padding:18px 0 18px 18px}.sf-step:last-child{min-height:30vh}.sf-step.on{opacity:1;border-left-color:var(--teal)}.sf-step.mine.on{border-left-color:var(--butter)}.sf-k{color:var(--accent);font-size:13px;font-weight:700}.sf-step.mine .sf-k{color:var(--butter-text)}.sf-step h3{margin:4px 0;font-size:22px;line-height:1.2}.sf-step p{color:var(--soft);max-width:46ch;margin:0 0 8px}.sf-tooltext{font-size:14px;color:var(--mute)!important}@media (width<=900px){.sf{grid-template-columns:1fr;gap:0}.sf-fig{display:none}.sf-mini{z-index:2;background:var(--bg);color:var(--mute);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;font-size:13px;display:flex;position:sticky;top:0}.sf-mini-bar{gap:3px;display:flex}.sf-seg{background:var(--line);width:18px;height:6px}.sf-seg.done,.sf-seg.on{background:var(--teal)}.sf-seg.mine.on{background:var(--butter)}.sf-mini-l{color:var(--fg);white-space:nowrap;font-weight:700}.sf-mini-pos{white-space:nowrap}.sf-step{min-height:0;padding:22px 0 22px 14px}.sf-steps{padding:8px 0 12vh}}@media (prefers-reduced-motion:reduce){.sf *,.sf-step{transition:none!important}}.sf-jump{cursor:pointer}.sf-jump:focus{outline:none}.sf-jump:focus-visible .sf-box{stroke:var(--butter);stroke-width:3px}.sf-jump:focus-visible .sf-rail-l{text-decoration:underline}.sf-rail-hit{fill:#0000}@media (hover:hover) and (pointer:fine){.sf-node:not(.on) .sf-jump:hover .sf-box{stroke:var(--teal-hi)}.sf-node:not(.on) .sf-jump:hover .sf-t{fill:var(--fg)}}.sf-step:focus{outline:none}.sf-step,[id]{scroll-margin-top:64px}.sf-step:focus-visible{outline:2px solid var(--butter);outline-offset:4px}.sf-flag{fill:var(--butter)}.sf-node.mine .sf-box{stroke:var(--line)}.sf-node.mine.done .sf-box{stroke:var(--butter)}.sf-node.mine.on .sf-box{fill:var(--butter);stroke:var(--butter)}.sf-node.mine.on .sf-flag{fill:var(--ink);opacity:.25}.sf-node.mine .sf-tool{fill:var(--butter-text)}.sf-node.mine.on .sf-tool,.sf-node.mine.on .sf-t{fill:var(--ink)}.sf-node.mine .sf-jump:focus-visible .sf-box{stroke:var(--fg);stroke-width:3px}.sf.finished .sf-link-out{stroke:var(--teal)}.stage-out{margin:4px 0 12px}.out-btn{all:unset;box-sizing:border-box;cursor:pointer;border:1.5px solid var(--line-ui);align-items:center;gap:14px;width:100%;padding:8px;display:flex}.out-btn:focus-visible{outline:3px solid var(--butter);outline-offset:2px}@media (hover:hover) and (pointer:fine){.out-btn:hover{border-color:var(--teal)}}.out-thumb{flex:none;width:150px;height:104px;display:block;overflow:hidden}.out-thumb .em{transform-origin:0 0;width:300px;transform:scale(.5)}.out-l{color:var(--soft);font-size:14px}.out-l u{text-decoration-color:var(--teal);text-underline-offset:3px;color:var(--fg);font-weight:700}.out-dlg{overscroll-behavior:contain;background:var(--panel);max-height:calc(100dvh - 32px);color:var(--fg);border:0;width:min(560px,100vw - 32px);padding:18px;overflow-y:auto}.out-dlg::backdrop{background:#0f1619bf}.out-cap{color:var(--mute);margin:10px 0 12px;font-size:13px}.out-close{font:inherit;background:var(--fg);color:var(--bg);cursor:pointer;border:0;padding:8px 18px;font-weight:800}.stage-item:has(.stage-out) .stage-fig{aspect-ratio:16/8}.story-body>*,.story-body .col,.sf,.sf-steps{min-width:0}.fill{border:1.5px dashed var(--butter);color:var(--butter-text);padding:8px 10px;font-style:italic;display:block}.about{max-width:760px;padding-bottom:56px}.ab-who{align-items:center;gap:8px;margin:12px 0 10px;display:flex}.ab-photo{object-fit:cover;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%);flex:none;width:176px;height:220px}.ab-photo.fill{text-align:center;place-items:center;font-size:14px;display:grid}.about h1{letter-spacing:-.03em;margin:0 0 6px;font-size:clamp(38px,5vw,60px);line-height:1}.ab-name{color:var(--mute);margin:0}.ab-name b{color:var(--fg)}.ab-lead{max-width:34ch;margin:0 0 8px;font-size:clamp(21px,2.4vw,28px);font-weight:600;line-height:1.3}.about h2{color:var(--accent);border-top:2px solid var(--fg);margin:40px 0 8px;padding-top:12px;font-size:15px}.ab-str{margin:0;padding:0;list-style:none}.ab-str li{border-bottom:1px solid var(--line);color:var(--soft);padding:12px 0}.ab-str b{color:var(--fg);display:block}.ab-note{color:var(--mute);margin:10px 0 0;font-size:14px}.ab-qa{border-top:2px solid var(--fg);margin:40px 0 0;padding-top:4px}.ab-qa dt{align-items:baseline;gap:10px;margin-top:22px;font-size:19px;font-weight:800;display:flex}.ab-qa .q{border:1.5px solid var(--soft);color:var(--soft);padding:0 6px;font-size:12px;font-weight:800}.ab-qa dd{color:var(--soft);margin:8px 0 0}.ab-cta{margin-top:36px}.ab-teaser{margin-bottom:56px}.ab-tz{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--fg);align-items:center;gap:18px;padding:16px 0;text-decoration:none;display:flex}.ab-tz img,.ab-tz-photo{object-fit:cover;flex:none;width:72px;height:90px}.ab-tz-photo.fill{place-items:center;padding:0;font-size:12px;display:grid}.ab-tz-t{flex:auto;min-width:0;font-size:17px}.ab-tz-go{color:var(--accent);text-underline-offset:4px;white-space:nowrap;font-weight:700;text-decoration:underline}.ab-tz:hover .ab-tz-go{color:var(--teal-hi)}@media (width<=560px){.ab-who{flex-direction:column;align-items:flex-start}}.photo-orbit{flex:none;display:block}.po-orbit{transform-box:view-box;transform-origin:50%;animation:14s linear infinite mm-spin}@media (prefers-reduced-motion:reduce){.po-orbit{animation:none}}.ab-who .photo-orbit{margin-left:-28px}.ab-tz .photo-orbit{margin:-8px 0}.mm-tour-start{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:4px;text-align:left;background:0 0;border:0;margin:2px 0 6px;padding:8px 0;font-size:14px;font-weight:700;text-decoration:underline;display:block}.mm-tour-start:hover{color:var(--teal-hi)}.mm-stop{border-left:5px solid var(--line-ui);background:var(--bg);margin:6px 0 8px;padding:8px 12px}.mm-stop-n{color:var(--mute);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.mm-stop-h{margin:2px 0 6px;font-weight:800}.mm-stop-pts{color:var(--soft);margin:0;padding-left:18px;font-size:14px}.mm-stop-pts li{margin:3px 0}.mm-tour-nav .mm-next{border-color:var(--teal);color:var(--fg)}.mm-tour-links{margin:6px 0 0}.ab-mail{color:var(--mute);margin:16px 0 0}.d-teal{fill:var(--teal)}.d-teal-s{stroke:var(--teal);fill:none}.d-butter{fill:var(--butter)}.d-butter-s{stroke:var(--butter);fill:none}.d-dim{fill:var(--line)}.d-line{stroke:var(--line)}.d-text{fill:var(--soft);font-family:var(--font)}.d-label{fill:var(--mute);font-family:var(--font);font-size:13px}.d-bg{fill:var(--bg)}.d-rec{animation:7s ease-in-out infinite d-sort}@keyframes d-sort{0%,12%{transform:translate(var(--x0), var(--y0))}48%,86%{transform:translate(var(--x1), var(--y1))}to{transform:translate(var(--x0), var(--y0))}}.d-rows{opacity:0;animation:7s ease-in-out infinite d-rows}@keyframes d-rows{0%,40%{opacity:0}52%,86%{opacity:1}to{opacity:0}}.d-draw{stroke-dasharray:900;stroke-dashoffset:900px;animation:7s ease-in-out infinite d-draw}@keyframes d-draw{0%{stroke-dashoffset:900px}60%,90%{stroke-dashoffset:0}to{stroke-dashoffset:900px}}.d-alert{opacity:0;transform-box:fill-box;transform-origin:50%;animation:7s ease-in-out infinite d-alert}@keyframes d-alert{0%,22%{opacity:0;transform:scale(.6)}28%,90%{opacity:1;transform:scale(1)}to{opacity:0}}.d-r1{opacity:.15;animation:7s ease-in-out infinite d-lit}.d-r2{opacity:.15;animation:7s ease-in-out 2.3s infinite d-lit}@keyframes d-lit{0%,15%{opacity:.15}30%,85%{opacity:1}to{opacity:.15}}.d-s1,.d-s2,.d-s3{opacity:0;animation:7s ease-in-out infinite d-step}.d-s1{animation-delay:.9s}.d-s2{animation-delay:2s}.d-s3{animation-delay:3s}@keyframes d-step{0%,20%{opacity:0}30%,88%{opacity:1}to{opacity:0}}.d-cut{animation:7s ease-in-out infinite d-cut}@keyframes d-cut{0%,20%{opacity:1}34%,88%{opacity:.12}to{opacity:1}}.d-post{animation:7s ease-in-out infinite d-post}.d-post:nth-of-type(2){animation-delay:.5s}.d-post:nth-of-type(3){animation-delay:1s}@keyframes d-post{0%,10%{opacity:0;transform:translateY(16px)}25%,85%{opacity:1;transform:translateY(0)}to{opacity:0}}.d-late{opacity:0;animation:7s ease-in-out infinite d-late}@keyframes d-late{0%,62%{opacity:0}67%,95%{opacity:1}to{opacity:0}}.diagram{flex-direction:column;height:100%;display:flex}.diagram svg{flex:auto;width:100%;min-height:0}.beats{flex:none;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 0;padding:0;font-size:12px;line-height:1.3;list-style:none;display:grid}.beats li{--on:var(--teal);border-top:3px solid var(--on);color:var(--fg);opacity:.55;padding-top:5px}.beats li.h{--on:var(--butter)}.beats li.b1{animation:7s linear infinite beat1}.beats li.b2{animation:7s linear infinite beat2}.beats li.b3{animation:7s linear infinite beat3}@keyframes beat1{0%,29%{opacity:1}31%,to{opacity:.55}}@keyframes beat2{0%,29%{opacity:.55}31%,61%{opacity:1}63%,to{opacity:.55}}@keyframes beat3{0%,61%{opacity:.55}63%,99%{opacity:1}to{opacity:.55}}[data-motion].paused *{animation-play-state:paused!important}.motion-btn{font:inherit;color:var(--soft);border:1.5px solid var(--line-ui);cursor:pointer;transition:transform .16s var(--ease-out);background:0 0;padding:3px 10px;font-size:13px;font-weight:700}.motion-btn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.motion-btn:hover{color:var(--fg);border-color:var(--mute)}}.h-act{opacity:0;animation:9s linear infinite h-act;animation-delay:var(--d)}@keyframes h-act{0%{opacity:0}2%{opacity:1}52%{opacity:1}58%,to{opacity:.08}}.h-before{animation:9s ease-in-out infinite h-before}@keyframes h-before{0%,52%{opacity:1}60%,96%{opacity:.35}to{opacity:1}}.h-after{opacity:0;animation:9s ease-in-out infinite h-after}@keyframes h-after{0%,56%{opacity:0;transform:translateY(8px)}64%,94%{opacity:1;transform:translateY(0)}to{opacity:0}}.h-ok{opacity:0;animation:9s ease-in-out infinite h-ok}@keyframes h-ok{0%,70%{opacity:0}76%,94%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.beats li,.d-late,.d-rec,.d-rows,.d-draw,.d-alert,.d-r1,.d-r2,.d-s1,.d-s2,.d-s3,.d-cut,.d-post,.h-act,.h-before,.h-after,.h-ok{animation:none!important}.d-rec{transform:translate(var(--x1), var(--y1))}.beats li{opacity:1}.motion-btn{display:none}.d-late,.d-rows,.d-alert,.d-r1,.d-r2,.d-s1,.d-s2,.d-s3,.d-post,.h-act,.h-after,.h-ok{opacity:1}.d-draw{stroke-dashoffset:0}.d-cut{opacity:.12}.h-before{opacity:.45}}
