:root{--bg:#0d0e11;--bg-raised:#141519;--line:#ffffff14;--line-strong:#ffffff29;--text:#e8e8ea;--text-2:#a8a9b0;--muted:#74757d;--accent:#e9a35b;--radius:8px;--maxw:1040px;--gutter:clamp(1.25rem, 5vw, 2rem);--font:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}body{background:var(--bg);color:var(--text-2);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.75}::selection{color:var(--text);background:#e9a35b47}h1,h2,h3,h4{color:var(--text);margin:0;font-weight:600;line-height:1.35}h2{letter-spacing:.01em;font-size:1.0625rem}h3,h4{font-size:1rem}p{margin:0 0 1em}a{color:var(--text);text-decoration:none}img{max-width:100%;height:auto;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.skip{z-index:100;background:var(--text);color:var(--bg);padding:8px 14px;position:absolute;top:0;left:-999px}.skip:focus{left:0}.section{max-width:var(--maxw);padding:clamp(4rem, 10vw, 7rem) var(--gutter) 0;margin:0 auto}.section__head{margin-bottom:1.75rem}.section__head h2{color:var(--accent);letter-spacing:.08em;font-size:.8125rem;font-weight:500}.section__body>:last-child{margin-bottom:0}.section__lead{max-width:40em}@media (width>=900px){.section{grid-template-columns:160px minmax(0,1fr);column-gap:3rem;display:grid}.section__head{margin:0}.section__head h2{line-height:1.75;position:sticky;top:92px}}.group-title{margin:3.5rem 0 1.25rem;font-size:1rem}.section__body>.group-title:first-child,.group-title--first{margin-top:0}.group-title+.section__lead,.group-title+.note{margin-top:-.5rem}.note{color:var(--muted);margin:0 0 1.25rem;font-size:.875rem}.inline-list{flex-wrap:wrap;row-gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.inline-list li:not(:last-child):after{content:"·";color:var(--muted);margin:0 .55em}.inline-list--mono{font-family:var(--mono);color:var(--muted);font-size:.78rem;line-height:1.8}.btn{height:2.5rem;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:.4rem;padding:0 1.1rem;font-size:.9375rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn--primary{background:var(--text);color:var(--bg)}.btn--primary:hover{background:#fff}.btn--ghost{color:var(--text);border-color:var(--line-strong);background:0 0}.btn--ghost:hover{border-color:var(--text-2)}.text-link{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:.3em;padding:0;font-size:.875rem;transition:color .15s;display:inline-flex}.text-link span{transition:transform .15s}.text-link:hover{color:var(--accent)}.text-link:hover span{transform:translate(2px)}.text-link--muted{color:var(--muted)}.noscript-note{max-width:var(--maxw);padding:0 var(--gutter);color:var(--muted);margin:4rem auto 0;font-size:.875rem}.noscript-note p{margin:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.img-fallback{background:var(--bg-raised);border:1px solid var(--line-strong);width:100%;color:var(--accent);border-radius:var(--radius);justify-content:center;align-items:center;font-size:1.25rem;font-weight:600;display:flex}.img-fallback--round{border-radius:50%}.nav{z-index:40;border-bottom:1px solid var(--line);background:#0d0e11f0;position:fixed;inset:0 0 auto}.nav__inner{max-width:var(--maxw);height:56px;padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;display:flex}.nav__logo{color:var(--text);font-size:1.0625rem;font-weight:600}.nav__links{gap:1.75rem;display:flex}.nav__links a{color:var(--muted);font-size:.875rem;transition:color .15s}.nav__links a:hover,.nav__links a.is-active{color:var(--text)}.nav__toggle{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:6px;width:40px;height:40px;margin-right:-10px;padding:0 10px;display:none}.nav__toggle span{background:var(--text);width:20px;height:1.5px;transition:transform .2s;display:block}.nav__toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px)rotate(45deg)}.nav__toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px)rotate(-45deg)}.footer{max-width:var(--maxw);padding:1.5rem var(--gutter) calc(1.5rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);margin:clamp(5rem,12vw,8rem) auto 0;font-size:.8125rem}.footer p{margin:0}.footer a{color:var(--muted)}.footer a:hover{color:var(--text-2)}.mobile-cta{right:var(--gutter);bottom:calc(1rem + env(safe-area-inset-bottom));z-index:45;background:var(--text);height:2.5rem;color:var(--bg);border-radius:6px;align-items:center;padding:0 1.1rem;font-size:.9375rem;font-weight:500;transition:opacity .2s,transform .2s,visibility .2s;display:none;position:fixed;box-shadow:0 4px 16px #00000073}.mobile-cta.is-hidden{opacity:0;pointer-events:none;visibility:hidden;transform:translateY(8px)}@media (width<=767px){.nav__links{padding:.5rem var(--gutter) 1rem;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:0;display:none;position:absolute;top:100%;left:0;right:0}.nav__links a{border-bottom:1px solid var(--line);padding:.7rem 0;font-size:1rem}.nav__links a:last-child{border-bottom:0}.nav__links.is-open,.nav__toggle{display:flex}.mobile-cta{display:inline-flex}}.hero{max-width:var(--maxw);padding:clamp(7.5rem, 18vh, 11rem) var(--gutter) clamp(2rem, 6vw, 3rem);margin:0 auto}.hero__status{color:var(--text-2);align-items:center;gap:.6em;margin:0 0 1.75rem;font-size:.8125rem;display:inline-flex}.hero__status:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.hero__name{letter-spacing:.02em;margin:0 0 .75rem;font-size:clamp(2.75rem,7vw,4rem);font-weight:600;line-height:1.1}.hero__title{color:var(--text);max-width:22em;margin:0 0 1.25rem;font-size:clamp(1.375rem,3.2vw,2rem);font-weight:500;line-height:1.4}.hero__sub{max-width:34em;margin:0 0 .75rem;font-size:1.0625rem}.hero__focus{color:var(--muted);margin:0 0 2rem;font-size:.875rem}.hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}.hero__log{border-top:1px solid var(--line);max-width:40rem;margin-top:clamp(3.5rem,9vw,5.5rem);padding-top:1.25rem}.hero__log-title{color:var(--muted);margin:0 0 .75rem;font-size:.8125rem}.hero__tasks{min-height:5.6em;margin:0;padding:0;list-style:none}.hero__tasks li{justify-content:space-between;align-items:baseline;gap:1.5rem;padding:.3rem 0;font-size:.875rem;line-height:1.6;display:flex}.hero__task{color:var(--text-2);padding-left:1.2em;position:relative}.hero__task:before{content:"›";font-family:var(--mono);color:var(--muted);position:absolute;left:0}.hero__done{color:var(--muted);flex:none;font-size:.75rem}@media (width<=599px){.hero{padding-top:6.5rem}.hero__sub{font-size:1rem}.hero__tasks li{flex-direction:column;gap:0;padding:.45rem 0}.hero__done{padding-left:1.2em}}@media (width>=900px){.hero{grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:3rem;display:grid}}.hero-cmd{flex-direction:column;align-items:center;margin-top:3rem;display:flex}@media (width>=900px){.hero-cmd{margin-top:0}}.hero-cmd__title{color:var(--muted);letter-spacing:.04em;align-self:flex-start;margin:0 0 1rem;font-size:.75rem}.ring{--size:340px;--av:44px;width:var(--size);height:var(--size);position:relative}.ring__lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ring__lines line,.ring__lines circle:not(.ring__dot){stroke:var(--line-strong);stroke-width:.3px;fill:none;vector-effect:non-scaling-stroke}.ring__dot{fill:var(--accent);opacity:0}.ring__orbit{position:absolute;inset:0}.ring__bot{width:var(--av);height:var(--av);margin:calc(var(--av) / -2) 0 0 calc(var(--av) / -2);border:1px solid var(--line-strong);background:var(--bg-raised);cursor:pointer;border-radius:50%;padding:0;transition:border-color .2s;position:absolute;top:50%;left:50%;overflow:hidden}.ring__bot img,.ring__bot .img-fallback{object-fit:cover;filter:grayscale(.15);border:0;border-radius:50%;width:100%;height:100%;font-size:.9rem;display:block}.ring__bot:hover,.ring__bot:focus-visible{border-color:var(--accent);outline:none}.ring__bot--exec{transform:rotate(var(--a)) translateY(calc(var(--size) * -.44)) rotate(calc(var(--a) * -1))}.ring__bot--lead{--av:52px;transform:translateY(calc(var(--size) * -.22))}.ring__hub{border:1px solid var(--accent);width:48px;height:48px;color:var(--accent);background:var(--bg);border-radius:50%;justify-content:center;align-items:center;margin:-24px 0 0 -24px;font-weight:600;display:flex;position:absolute;top:50%;left:50%}.ring__cap{color:var(--text-2);text-align:center;min-height:1.5em;margin:.75rem 0 1.25rem;font-size:.8125rem}@keyframes ring-spin{to{transform:rotate(360deg)}}@keyframes ring-unspin{to{transform:rotate(-360deg)}}.ring__orbit[data-spin],.ring__lines[data-spin]{animation:120s linear infinite ring-spin}.ring__orbit[data-spin] .ring__bot--exec img{animation:120s linear infinite ring-unspin}.hero.is-paused .ring__orbit,.hero.is-paused .ring__lines,.hero.is-paused .ring__bot--exec img,.hero.is-paused .term__caret{animation-play-state:paused}.term{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);width:100%;font-family:var(--mono);font-size:.8125rem}.term__bar{border-bottom:1px solid var(--line);color:var(--muted);padding:.4rem .75rem;font-size:.7rem}.term__body{min-height:6.4em;margin:0;padding:.6rem .75rem;list-style:none}.term__body li{color:var(--text-2);padding:.15rem 0;line-height:1.6}.term__p{color:var(--muted)}.term__ok{color:var(--muted);white-space:nowrap;margin-left:.75em}.term__caret{vertical-align:-.15em;background:var(--accent);width:.55em;height:1em;margin-left:1px;animation:1s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}@media (width<=599px){.ring{--size:240px;--av:32px}.ring__bot--lead{--av:38px}.ring__hub{width:36px;height:36px;margin:-18px 0 0 -18px;font-size:.85rem}.term{font-size:.75rem}}@media (prefers-reduced-motion:reduce){.ring__orbit,.ring__lines,.ring__bot img,.term__caret{animation:none!important}}.about__lead{max-width:40em;margin-bottom:3rem}.about__lead p{color:var(--text-2)}.how{counter-reset:how;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:1.25rem 0 3rem;padding:0;list-style:none;display:grid}.how li{counter-increment:how;border-top:1px solid var(--line);padding-top:1rem}.how li:before{content:counter(how, decimal-leading-zero);font-family:var(--mono);color:var(--muted);margin-bottom:.5rem;font-size:.75rem;display:block}.how strong{color:var(--text);margin-bottom:.2rem;font-weight:600;display:block}.how span{font-size:.9375rem}.intent{gap:.4rem;margin:0;display:grid}.intent div{grid-template-columns:6em 1fr;gap:1rem;font-size:.9375rem;display:grid}.intent dt{color:var(--muted)}.intent dd{color:var(--text);margin:0}.skills{border-top:1px solid var(--line)}.skill{border-bottom:1px solid var(--line);grid-template-columns:13rem minmax(0,1fr);gap:1.5rem;padding:1.1rem 0;display:grid}.skill__head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.skill h3{font-size:.9375rem}.skill .inline-list{color:var(--text-2);font-size:.9375rem}.lv{flex:none;font-size:.75rem}.lv--main{color:var(--accent)}.lv--good{color:var(--text-2)}.lv--known{color:var(--muted)}.timeline{margin:0;padding:0;list-style:none}.tl{border-top:1px solid var(--line);grid-template-columns:9.5rem minmax(0,1fr);gap:1.5rem;padding:1.5rem 0;display:grid}.tl:first-child{border-top:0;padding-top:0}.tl__period{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.8125rem;line-height:1.85}.tl__phase{margin-bottom:.35rem;font-size:1rem}.tl p{margin:0}.tl__sub{margin:.5rem 0 0;padding:0;list-style:none}.tl__sub li{margin-bottom:.4em;padding-left:1.1em;font-size:.9375rem;position:relative}.tl__sub li:before{content:"–";color:var(--muted);position:absolute;left:0}.work-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem;display:grid}.pcard{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.5rem 0;display:flex}.pcard h4{font-size:1rem}.pcard__sub{color:var(--muted);margin:-.25rem 0 0;font-size:.8125rem}.pcard__note:before{content:"·";margin:0 .55em}.pcard__sum{margin:0;font-size:.9375rem}.pcard .text-link{margin-top:.4rem}.pcard--faint h4{color:var(--text-2);font-weight:500}.pcard--faint .pcard__sum{color:var(--muted);font-size:.875rem}.cases{gap:3rem;display:grid}.case{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.case__media{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-raised);width:100%}.case__kind{color:var(--muted);letter-spacing:.04em;margin:0 0 .4rem;font-size:.75rem}.case h4{margin-bottom:.6rem;font-size:1.0625rem}.case__body>p:not(.case__kind){font-size:.9375rem}.case .inline-list{margin-bottom:1rem}.games{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem 1.5rem;display:grid}.game__shot{aspect-ratio:16/10;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-raised);margin-bottom:.9rem;display:block;overflow:hidden}.game__shot img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .4s}.game__shot:hover img{transform:scale(1.02)}.game h4{margin-bottom:.25rem;font-size:.9375rem}.game p{margin:0 0 .6rem;font-size:.875rem}.game__actions{gap:1.25rem;display:flex}.game--more{display:block}.game__shot--more{aspect-ratio:16/10;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;transition:border-color .2s;display:flex}.game__more-label{color:var(--text);font-size:1.125rem;font-weight:600;transition:color .2s}.game__more-hint{color:var(--muted);font-size:.8125rem;transition:color .2s}.game--more:hover .game__shot--more,.game--more:focus-visible .game__shot--more{border-color:var(--accent)}.game--more:hover .game__more-label,.game--more:hover .game__more-hint{color:var(--accent)}.team{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem;margin:0;padding:0;list-style:none;display:grid}.bot{border-top:1px solid var(--line);grid-template-columns:36px minmax(0,1fr);gap:.9rem;padding:1rem 0;display:grid}.bot--lead{grid-column:1/-1}.bot img{background:var(--bg-raised);filter:saturate(.8);border-radius:50%;width:36px;height:36px}.bot__name{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin:0 0 .15rem;display:flex}.bot__name strong{font-family:var(--mono);color:var(--text);font-size:.875rem;font-weight:500}.bot__name span{color:var(--muted);font-size:.8125rem}.bot--lead .bot__name span{color:var(--accent)}.bot__desc{margin:0;font-size:.9375rem}.steps{counter-reset:step;margin:0 0 2.5rem;padding:0;list-style:none}.step{counter-increment:step;border-top:1px solid var(--line);grid-template-columns:2.5rem minmax(0,1fr);padding:.75rem 0;font-size:.9375rem;display:grid}.step:before{content:counter(step, decimal-leading-zero);font-family:var(--mono);color:var(--muted);font-size:.75rem;line-height:1.95rem}.result-shot{margin:0}.result-shot img{border:1px solid var(--line);border-radius:var(--radius);width:100%}.result-shot figcaption{color:var(--muted);margin-top:.75rem;font-size:.8125rem}.principles{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;display:grid}.principle{border-top:1px solid var(--line);padding-top:1rem}.principle h4{margin-bottom:.4rem;font-size:.9375rem}.principle p{margin:0;font-size:.9375rem}.contact__lead{color:var(--text);max-width:26em;margin-bottom:1.75rem;font-size:clamp(1.125rem,2.4vw,1.375rem);line-height:1.6}.email{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.email__out{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.email__addr{font-family:var(--mono);color:var(--text);border-bottom:1px solid var(--line-strong);font-size:1.0625rem}.email__addr:hover{color:var(--accent);border-color:var(--accent)}.email__plain{color:var(--text-2);font-family:var(--mono);margin:0}@media (width<=899px){.case{grid-template-columns:1fr;gap:1.25rem}.games{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}}@media (width<=767px){.how,.principles{grid-template-columns:1fr;gap:0}.how li,.principle{padding:1rem 0}.skill{grid-template-columns:1fr;gap:.4rem}.skill__head{justify-content:flex-start}.tl{grid-template-columns:1fr;gap:.25rem}.work-list,.team{grid-template-columns:1fr}}.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(8px)}.reveal.is-in{opacity:1;transform:none}.drawer{z-index:60;position:fixed;inset:0}.drawer[hidden]{display:none}.drawer__scrim{background:#0009;position:absolute;inset:0}.drawer__panel{z-index:1;background:var(--bg-raised);border-left:1px solid var(--line);overscroll-behavior:contain;width:min(560px,100vw);height:100%;padding:3rem 2rem 2.5rem;animation:.22s slideIn;position:absolute;top:0;right:0;overflow-y:auto}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer__close{width:2.25rem;height:2.25rem;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:1.5rem;line-height:1;position:absolute;top:.75rem;right:.75rem}.drawer__close:hover{color:var(--text);background:#ffffff0f}.drawer__content h2{margin-bottom:.4rem;font-size:1.25rem}.drawer__content .pcard__sub{margin:0 0 1rem}.drawer__content .inline-list{margin-bottom:1.5rem}.drawer__content ul:not(.inline-list){margin:0;padding-left:1.1rem}.drawer__content ul:not(.inline-list) li{margin-bottom:.5em;font-size:.9375rem}.drawer__content figure{margin:0 0 1.25rem}.drawer__content figure img{border:1px solid var(--line);border-radius:var(--radius);width:100%}.drawer__content figcaption{color:var(--muted);margin-top:.5rem;font-size:.8125rem}.drawer__content .drawer__phone{max-width:280px}.drawer__content .drawer__cover{max-width:100%}.drawer__lead{color:var(--text-2);font-size:.9375rem}.drawer__kick{color:var(--muted);margin:1.75rem 0 .6rem;font-size:.8125rem}.drawer__content>.drawer__kick:first-child{margin-top:0}@media (width<=767px){.drawer__panel{border-left:0;border-top:1px solid var(--line);width:100%;height:min(88vh,100%);padding:2.75rem var(--gutter) calc(2rem + env(safe-area-inset-bottom));border-radius:12px 12px 0 0;animation:.22s slideUp;top:auto;bottom:0;left:0}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}}
