:root{--bg:#050b1a;--panel:#0a1630;--line:#78aaff29;--tx:#e6eefc;--hi:#fff;--mut:#9fb2d4;--ac:#38bdf8;--ac2:#2f7bff;--on:#031024;--sh:none;--rad:20px;--cbg:color-mix(in srgb,var(--panel) 85%,transparent);--ctx:#cfe0ff;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--bg);color:var(--tx);font:16px/1.65 var(--fb),system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{max-width:100%;height:auto;display:block}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--fh);font-weight:var(--fw);line-height:1.1}.ttl,.hero h1{text-transform:var(--tt)}.wrap{width:min(1120px,100% - 40px);margin-inline:auto}.rv{opacity:0;transform:translate(var(--rx,0),var(--ry,12px)) scale(var(--rs,1));filter:blur(var(--rb,3px));transition:opacity var(--rd,.5s) var(--re,var(--ease)),transform var(--rd,.5s) var(--re,var(--ease)),filter var(--rd,.5s) var(--re,var(--ease));transition-delay:calc(var(--i,0)*var(--rst,40ms))}.rv.in{opacity:1;filter:none;transform:none}@media (prefers-reduced-motion:reduce){.rv{opacity:1;filter:none;transition:none;transform:none}html{scroll-behavior:auto}}.btn{border-radius:var(--btn,999px);background:linear-gradient(135deg,var(--ac2),var(--ac));color:var(--on);transition:transform .2s var(--ease),box-shadow .2s;align-items:center;gap:8px;padding:11px 20px;font-size:15px;font-weight:600;display:inline-flex}.btn:hover{box-shadow:0 8px 24px color-mix(in srgb,var(--ac) 30%,transparent);transform:translateY(-2px)}.btn-ghost{color:var(--tx);border:var(--bw,1px) solid var(--line);background:0 0}.nav{z-index:50;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:fixed;inset:0 0 auto}.nav .bar{background:var(--ac);transform-origin:0;width:100%;height:2px;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.nav-in{justify-content:space-between;align-items:center;height:64px;display:flex}.logo{align-items:center;gap:10px;font-weight:600;display:flex}.logo a{color:var(--hi)}.gr{background:linear-gradient(135deg,var(--ac2),var(--ac));width:34px;height:34px;color:var(--on);font:700 16px var(--fh);cursor:pointer;transition:transform .25s var(--ease);border:0;border-radius:9px;place-items:center;display:grid}.gr:hover{transform:rotate(-8deg)scale(1.06)}.gr:active{transform:scale(.94)}.nav nav{color:var(--mut);align-items:center;gap:22px;font-size:14.5px;display:flex}.nav nav a:hover{color:var(--tx)}.nav nav .btn{color:var(--on);padding:8px 16px}.hero{align-items:center;min-height:100svh;padding:110px 0 70px;display:flex;position:relative;overflow:hidden}.hero-bg{opacity:var(--aur,.65);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}.hero-in{grid-template-columns:1.1fr .9fr;align-items:center;gap:48px;display:grid;position:relative}.hero h1 span{color:var(--hi)}.hero h1{letter-spacing:-.02em;flex-direction:column;font-size:clamp(46px,7.5vw,96px);display:flex}.hero h1 em{font-style:var(--ems);color:var(--ac)}.tag{font-family:var(--fh);letter-spacing:.08em;margin:18px 0;font-size:15px;font-weight:600}.tag b{color:var(--mut)}.lead{max-width:520px;color:var(--mut);margin-bottom:28px;font-size:18px}.lead .blur-text{display:inline}.actions{flex-wrap:wrap;gap:12px;display:flex}.hero-art{justify-items:center;gap:16px;display:grid}.photo-wrap{width:min(340px,100%)}.code{background:var(--cbg);border:var(--bw,1px) solid var(--line);width:min(340px,100%);color:var(--ctx);border-radius:14px;padding:16px 14px;font:12.5px/1.6 Cascadia Mono,Consolas,monospace;overflow:hidden}.code i{color:#6b82ab;font-style:normal}.code b{color:#6ea8ff;font-weight:400}.code u{color:#4fd1c5;text-decoration:none}.code s{color:#f4a261;text-decoration:none}.sec{padding:90px 0}.ttl{letter-spacing:-.01em;margin-bottom:22px;font-size:clamp(28px,4vw,42px)}.ttl em{font-style:var(--ems);color:var(--ac)}.grid2{grid-template-columns:1fr 1fr;align-items:stretch;gap:24px;display:grid}.panel,.tcard,.cta{background:var(--panel)!important;border:var(--bw,1px) solid var(--line)!important;border-radius:var(--rad)!important;box-shadow:var(--sh)!important;padding:30px!important}.panel{flex-direction:column;display:flex}.panel p{color:var(--mut);margin-bottom:14px}.panel p b{color:var(--tx);font-weight:600}.facts{grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:14px;margin-top:auto;padding-top:22px;display:grid}.facts li{border:var(--bw,1px) solid var(--line);background:color-mix(in srgb,var(--ac2) 8%,transparent);border-radius:14px;padding:14px 16px}.facts b{font:var(--fw) 1.9rem/1.1 var(--fh);color:var(--hi);display:block}.facts li>span{color:var(--mut);text-transform:uppercase;letter-spacing:.05em;font-size:.82rem}.do{flex-direction:column;flex:1;justify-content:space-between;gap:14px;display:flex}.do li{gap:14px;display:flex}.do i{background:color-mix(in srgb,var(--ac) 12%,transparent);width:44px;height:44px;color:var(--ac);font:600 12px var(--fh);border-radius:11px;flex:none;place-items:center;font-style:normal;display:grid}.do h3{margin-bottom:3px;font-size:17px}.do p{color:var(--mut);font-size:14.5px}.loop{margin:6px 0 28px;padding:10px 0}.tile{background:var(--panel);border:var(--bw,1px) solid var(--line);border-radius:14px;place-items:center;width:58px;height:58px;display:grid}.tile img{width:30px;height:30px}.tgroups{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.tcard{height:100%;padding:22px!important}.tcard h3{color:var(--ac);margin-bottom:14px;font-size:16px}.tcard ul{gap:9px;display:grid}.tcard li{align-items:center;gap:10px;font-size:14.5px;display:flex}.ic{background:color-mix(in srgb,var(--tx) 7%,transparent);width:28px;height:28px;font:700 10px var(--fh);color:var(--c,var(--tx));border-radius:7px;place-items:center;display:grid}.ic img{width:18px;height:18px}.timeline{gap:22px;padding-left:28px;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(var(--ac),transparent);width:2px;position:absolute;top:6px;bottom:6px;left:5px}.timeline>li{background:var(--panel);border:var(--bw,1px) solid var(--line);border-radius:16px;padding:22px 24px;position:relative}.timeline>li:before{content:"";background:var(--ac);width:12px;height:12px;box-shadow:0 0 0 4px color-mix(in srgb,var(--ac) 20%,transparent);border-radius:50%;position:absolute;top:28px;left:-28px}.dur{color:var(--ac);font-size:13px;font-weight:600}.timeline h3{margin:6px 0 2px;font-size:20px}.org{color:var(--tx);margin-bottom:8px;font-weight:500}.timeline p{color:var(--mut);font-size:15px}.roles{gap:14px;margin-top:14px;display:grid}.roles li{border:var(--bw,1px) solid var(--line);border-radius:12px;padding:14px 16px}.roles h4{font-size:16px}.roles .when{color:var(--ac);font-size:12.5px}.edu{gap:12px;margin-bottom:8px;display:grid}.edu b{display:block}.edu span{color:var(--mut);font-size:14px}.mini{color:var(--ac);margin:20px 0 10px;font-size:14px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags li{border:var(--bw,1px) solid var(--line);color:var(--mut);border-radius:999px;padding:6px 12px;font-size:13.5px}.cta{grid-template-columns:1.2fr .8fr;align-items:center;gap:32px;display:grid}.cta p{color:var(--mut);margin-bottom:18px}.links{gap:12px;display:grid}.links li{align-items:center;gap:12px;display:flex}.lk{background:color-mix(in srgb,var(--tx) 7%,transparent);border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.lk img{width:22px;height:22px}.links a:hover{color:var(--ac)}blockquote{font:var(--fw) 22px/1.35 var(--fh);color:var(--mut);border-left:3px solid var(--ac);padding-left:18px}footer{text-align:center;color:var(--mut);border-top:1px solid var(--line);padding:30px 0;font-size:14px}@media (width<=860px){.nav nav a:not(.btn){display:none}.hero{padding-top:90px}.hero-in,.grid2,.cta{grid-template-columns:1fr}.hero-art{order:-1}.photo-wrap{width:min(240px,70%)}.tgroups{grid-template-columns:1fr 1fr}.sec{padding:60px 0}}@media (width<=520px){.tgroups{grid-template-columns:1fr}.logo span{display:none}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}[data-theme=anime] .hero:before{content:"";background:radial-gradient(#1a1a1a24 1.3px,transparent 1.7px) 0 0/14px 14px,repeating-conic-gradient(from 0deg at 74% 46%,#ffb70333 0 4deg,transparent 4deg 11deg);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}[data-theme=anime] .nav{background:#fff8ecee;border-bottom:3px solid #1a1a1a}[data-theme=anime] .btn{background:var(--ac);color:#fff;letter-spacing:.03em;border:3px solid #1a1a1a;box-shadow:4px 4px #1a1a1a}[data-theme=anime] .btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #1a1a1a}[data-theme=anime] .btn-ghost{color:#1a1a1a;background:#fff}[data-theme=anime] .gr{background:var(--ac2);color:#1a1a1a;border:3px solid #1a1a1a;box-shadow:3px 3px #1a1a1a}[data-theme=anime] .hero h1{letter-spacing:.02em;-webkit-text-stroke:2px #1a1a1a;paint-order:stroke fill;text-shadow:5px 5px #1a1a1a;font-size:clamp(52px,8.5vw,112px)}[data-theme=anime] .hero h1 em{color:var(--ac)}[data-theme=anime] .ttl{letter-spacing:.03em;-webkit-text-stroke:1.5px #1a1a1a;paint-order:stroke fill;text-shadow:3px 3px #1a1a1a}[data-theme=anime] .ttl,[data-theme=anime] .facts b{font-size:clamp(30px,4.4vw,46px)}[data-theme=anime] .photo-wrap,[data-theme=anime] .photo-wrap>div{border-radius:18px}[data-theme=anime] .photo-wrap .glare-hover{border-color:#0000!important}[data-theme=anime] .photo-wrap .glare-hover__glare,[data-theme=pixel] .photo-wrap .glare-hover__glare{display:none}[data-theme=anime] .photo-wrap img{filter:drop-shadow(6px 6px #1a1a1a)}[data-theme=anime] .tag b{color:#1a1a1a}[data-theme=anime] .code{border-width:3px;font-size:12px;box-shadow:5px 5px #ffb703}[data-theme=anime] .tile,[data-theme=anime] .ic,[data-theme=anime] .lk{background:#fff;border:2px solid #1a1a1a}[data-theme=anime] .timeline:before{background:#1a1a1a;width:3px}[data-theme=anime] .timeline>li:before{box-shadow:none;background:var(--ac2);border:3px solid #1a1a1a}[data-theme=anime] .tags li{background:#fff;border-width:2px}[data-theme=anime] .facts li{background:#fff4d6}[data-theme=anime] .facts li>span{color:#2a2430}[data-theme=anime] footer{border-top:3px solid #1a1a1a}[data-theme=pixel] *{border-radius:0!important}[data-theme=pixel] body{font-size:21px;line-height:1.3}[data-theme=pixel] .hero:before{content:"";background:linear-gradient(#ffffff0a 2px,#0000 2px) 0 0/16px 16px,linear-gradient(90deg,#ffffff0a 2px,#0000 2px) 0 0/16px 16px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}[data-theme=pixel] .nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1a1c2cf2;border-bottom:3px solid #566c86}[data-theme=pixel] .nav nav,[data-theme=pixel] .logo span{font-size:18px}[data-theme=pixel] .btn{background:var(--ac);color:var(--on);font-family:var(--fh);border:3px solid #0e0f1a;padding:12px 14px;font-size:11px;line-height:1.4;box-shadow:4px 4px #0e0f1a}[data-theme=pixel] .nav nav .btn{padding:9px 12px}[data-theme=pixel] .btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #0e0f1a}[data-theme=pixel] .btn:active{transform:translate(3px,3px);box-shadow:1px 1px #0e0f1a}[data-theme=pixel] .btn-ghost{color:var(--tx);background:0 0;border-color:#566c86}[data-theme=pixel] .gr{border:3px solid #0e0f1a;padding:0;font-size:10px;box-shadow:3px 3px #0e0f1a}[data-theme=pixel] .hero h1{letter-spacing:0;text-shadow:4px 4px #0e0f1a;font-size:clamp(26px,5vw,54px);line-height:1.3}[data-theme=pixel] .tag{letter-spacing:0;font-size:11px;line-height:1.8}[data-theme=pixel] .lead{font-size:23px}[data-theme=pixel] .ttl{letter-spacing:0;text-shadow:3px 3px #0e0f1a;font-size:clamp(15px,2.3vw,24px);line-height:1.5}[data-theme=pixel] .facts b{font-size:1.25rem;line-height:1.4}[data-theme=pixel] .facts li>span{letter-spacing:0;font-size:16px}[data-theme=pixel] .do h3,[data-theme=pixel] .tcard h3,[data-theme=pixel] .roles h4,[data-theme=pixel] .mini{font-size:11px;line-height:1.7}[data-theme=pixel] .timeline h3{font-size:13px;line-height:1.6}[data-theme=pixel] .do p,[data-theme=pixel] .timeline p,[data-theme=pixel] .panel p,[data-theme=pixel] .cta p{font-size:20px}[data-theme=pixel] .tcard li,[data-theme=pixel] .tags li,[data-theme=pixel] .edu span,[data-theme=pixel] .dur,[data-theme=pixel] .when{font-size:18px}[data-theme=pixel] .do i,[data-theme=pixel] .ic{font-size:9px}[data-theme=pixel] blockquote{font-size:12px;line-height:1.9}[data-theme=pixel] .photo-wrap .glare-hover{border-color:#0000!important}[data-theme=pixel] .photo-wrap img{image-rendering:pixelated;filter:drop-shadow(5px 5px #0e0f1a)}[data-theme=pixel] .code{font-family:VT323,monospace;font-size:16px;box-shadow:4px 4px #0e0f1a}[data-theme=pixel] .tile{border:3px solid #566c86}[data-theme=pixel] .timeline:before{background:#566c86;width:4px}[data-theme=pixel] .timeline>li:before{box-shadow:none;border-radius:0!important}[data-theme=pixel] footer{font-size:18px}img.px{image-rendering:pixelated}.emo{vertical-align:-.2em;width:1.15em;height:1.15em;line-height:1;display:inline-block}[data-theme=pixel] .tile img,[data-theme=pixel] .lk img{width:32px;height:32px}[data-theme=pixel] .ic img{width:16px;height:16px}[data-theme=pixel] .emo{width:20px;height:20px}[data-theme=anime] :is(.tile,.ic,.lk) img,[data-theme=anime] .emo{filter:saturate(1.5)contrast(1.15)drop-shadow(1.5px 0 #1a1a1a)drop-shadow(-1.5px 0 #1a1a1a)drop-shadow(0 1.5px #1a1a1a)drop-shadow(0 -1.5px #1a1a1a)drop-shadow(2px 2px #1a1a1a)}[data-theme=anime] :is(.tile,.ic,.lk){overflow:visible}[data-theme=pixel] :is(.tile,.ic,.lk) img.px{filter:brightness(1.45)saturate(1.35)contrast(1.1)}.aurora-container{width:100%;height:100%;position:relative;overflow:hidden}.aurora-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.shiny-text{-webkit-text-fill-color:transparent;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block;position:relative}.shiny-text__glow{filter:blur(.14em);pointer-events:none;-webkit-user-select:none;user-select:none;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.spotlight-card{isolation:isolate;background-color:var(--spotlight-card-surface);box-shadow:var(--spotlight-card-shadow);border-radius:1.5rem;padding:2rem;position:relative;overflow:hidden}.spotlight-card__light,.spotlight-card__grain,.spotlight-card__border,.spotlight-card__edge{border-radius:inherit;pointer-events:none;position:absolute;inset:0}.spotlight-card__light,.spotlight-card__grain{z-index:-1;opacity:0}.spotlight-card__grain{mix-blend-mode:overlay;background-size:160px 160px}.spotlight-card__border,.spotlight-card__edge{z-index:1;-webkit-mask-composite:xor;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.spotlight-card__border{background:var(--spotlight-card-border)}.spotlight-card__edge{opacity:0}.glare-hover{vertical-align:top;width:var(--gh-width);height:var(--gh-height);background:var(--gh-bg);border:1px solid var(--gh-border);border-radius:var(--gh-br);isolation:isolate;place-items:center;display:inline-grid;position:relative;overflow:hidden}.glare-hover__glare{z-index:2;border-radius:inherit;opacity:0;mix-blend-mode:var(--gh-blend);pointer-events:none;position:absolute;inset:0}.glare-hover__band{background:var(--gh-glare);will-change:transform;position:absolute;top:50%;left:50%}.glare-hover__rim{border-radius:inherit;-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude}.glare-hover__band--rim{background:var(--gh-rim)}.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-pad:0px;padding-top:var(--logoloop-pad);padding-bottom:var(--logoloop-pad);-webkit-tap-highlight-color:transparent;position:relative;overflow:clip}.logoloop--vertical{height:100%;padding:0 var(--logoloop-pad);display:inline-block}.logoloop[data-draggable]{cursor:grab;touch-action:pan-y pinch-zoom}.logoloop--vertical[data-draggable]{touch-action:pan-x pinch-zoom}.logoloop[data-dragging],.logoloop[data-dragging] *{cursor:grabbing}.logoloop__track{z-index:0;will-change:transform;-webkit-user-select:none;user-select:none;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;margin:0;padding:0;list-style:none;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1;position:relative}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop[data-intro] .logoloop__item{opacity:0}.logoloop__content{align-items:center;gap:calc(var(--logoloop-logoHeight) * .3);color:inherit;border-radius:4px;text-decoration:none;transition:opacity .35s,filter .35s,color .35s;display:inline-flex}.logoloop[data-labels=below] .logoloop__content{gap:calc(var(--logoloop-logoHeight) * .22);flex-direction:column}.logoloop__content:focus-visible{outline-offset:2px;outline:2px solid}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{width:auto;height:var(--logoloop-logoHeight);object-fit:contain;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;display:block}.logoloop__node,.logoloop__item img{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform:scale(1.2)}.logoloop__label{font-size:max(12px, calc(var(--logoloop-logoHeight) * .5));letter-spacing:-.01em;white-space:nowrap;font-weight:600;line-height:1.2}.logoloop[data-labels=below] .logoloop__label{font-size:max(11px, calc(var(--logoloop-logoHeight) * .26));letter-spacing:0;opacity:.72;font-weight:500}.logoloop__tip{margin-top:calc(var(--logoloop-logoHeight) * .2);font-size:max(11px, calc(var(--logoloop-logoHeight) * .26));white-space:nowrap;opacity:0;pointer-events:none;font-weight:500;line-height:1.2;transition:opacity .25s,translate .25s;position:absolute;top:100%;left:50%;translate:-50% 4px}.logoloop--vertical .logoloop__tip{margin-top:0;margin-left:calc(var(--logoloop-logoHeight) * .25);top:50%;left:100%;translate:4px -50%}.logoloop__item:hover .logoloop__tip,.logoloop__item:focus-within .logoloop__tip,.logoloop__item[data-active] .logoloop__tip{opacity:.8;translate:-50%}.logoloop--vertical .logoloop__item:hover .logoloop__tip,.logoloop--vertical .logoloop__item:focus-within .logoloop__tip,.logoloop--vertical .logoloop__item[data-active] .logoloop__tip{translate:0 -50%}.logoloop[data-muted] .logoloop__content{filter:grayscale(var(--logoloop-gray,1));opacity:var(--logoloop-dim,.5)}.logoloop[data-muted] .logoloop__item:hover .logoloop__content,.logoloop[data-muted] .logoloop__item:focus-within .logoloop__content,.logoloop[data-muted] .logoloop__item[data-active] .logoloop__content{filter:none;opacity:1}.logoloop__item[data-color]:hover .logoloop__content,.logoloop__item[data-color]:focus-within .logoloop__content,.logoloop__item[data-color][data-active] .logoloop__content{color:var(--logoloop-item-color)}.logoloop:not([data-muted]) .logoloop__item:not([data-color]) a.logoloop__content:hover{opacity:.8}@media (prefers-reduced-motion:reduce){.logoloop__content,.logoloop__node,.logoloop__item img,.logoloop__tip{transition:none}}
