@font-face{font-family:"Portfolio Mono";src:url("/assets/fonts/jetbrains-mono-vietnamese.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:100 800;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Portfolio Mono";src:url("/assets/fonts/jetbrains-mono-latin.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:100 800;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Portfolio Serif";src:url("/assets/fonts/source-serif-vietnamese.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:400 700;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Portfolio Serif";src:url("/assets/fonts/source-serif-latin.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:400 700;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Portfolio Display";src:url("/assets/fonts/playfair-normal-vietnamese.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:400 800;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Portfolio Display";src:url("/assets/fonts/playfair-normal-latin.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:400 800;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Portfolio Display";src:url("/assets/fonts/playfair-italic-vietnamese.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:400 800;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Portfolio Display";src:url("/assets/fonts/playfair-italic-latin.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:400 800;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{color-scheme:dark;--bg:#160d09;--bg-raised:#21130d;--panel:#2b190f;--panel-2:#382116;--ink:#fff5df;--muted:#d8bea0;--line:#8b5e3c;--line-hot:#f1ad65;--cyan:#f1ad65;--cyan-deep:#bd632e;--amber:#ffd27a;--orange:#ff8155;--orange-deep:#ffae78;--lime:#c5dc8a;--danger:#ff8580;--navy:#160d09;--blue:#f2bc7d;--blue-light:#4a2a18;--paper:#21130d;--paper-2:#382116;--white:#2b190f;--success:#c5dc8a;--shadow:#080402;--shell:min(1180px,calc(100% - 48px));--font-ui:"Portfolio Mono","PingFang SC","Hiragino Sans GB","Yu Gothic UI",monospace;--font-body:"Portfolio Serif","Songti SC","Yu Mincho",serif;--font-display:"Portfolio Display","Songti SC","Yu Mincho",serif}
[data-theme="light"]{color-scheme:light;--bg:#f3e6cf;--bg-raised:#fff5e4;--panel:#fff9ed;--panel-2:#ead7b8;--ink:#2c160d;--muted:#60493a;--line:#8d674e;--line-hot:#8a3c16;--cyan:#8a3c16;--cyan-deep:#6d2c10;--amber:#704200;--orange:#8f3014;--orange-deep:#71250f;--lime:#3f6518;--danger:#922b2b;--navy:#2c160d;--blue:#744014;--blue-light:#ead1af;--paper:#fff9ed;--paper-2:#ead7b8;--white:#fff9ed;--success:#3f6518;--shadow:#b99b72}
[data-theme="light"] .brand-mark,[data-theme="light"] .button-primary,[data-theme="light"] .button-primary:hover,[data-theme="light"] .portrait-label{color:#fff}
[data-theme="light"] ::selection{color:#fff}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{max-width:none!important;margin:0!important;padding:0!important;background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb,var(--amber) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--orange) 7%,transparent) 1px,transparent 1px),radial-gradient(circle at 82% 9%,color-mix(in srgb,var(--orange) 13%,transparent),transparent 30rem);background-size:32px 32px,32px 32px,auto;color:var(--ink);font-family:var(--font-body);font-size:1.06rem;line-height:1.65;overflow-x:hidden}
body::before{content:"";position:fixed;z-index:999;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.015) 3px 4px);mix-blend-mode:screen}
body.lang-ja,body.lang-zh{font-family:"PingFang SC","Hiragino Sans GB","Yu Gothic","Noto Sans CJK SC",sans-serif}
body.lang-ja h1,body.lang-ja h2,body.lang-ja h3,body.lang-zh h1,body.lang-zh h2,body.lang-zh h3{font-family:var(--font-ui)}
img{display:block;max-width:100%;height:auto}
a{color:var(--cyan);text-underline-offset:.2em;text-decoration-thickness:2px}
a:hover{color:var(--amber)}
button,input{font:inherit}
button,a,.theme-control{cursor:pointer}
::selection{background:var(--amber);color:#2c160d}
:focus-visible,html body :is(a,button,input):focus-visible{outline:3px solid var(--amber)!important;outline-offset:4px!important}
h1,h2,h3{color:var(--ink);font-family:var(--font-display);line-height:1.04;text-wrap:balance}
h1{font-size:clamp(3.4rem,8vw,7.8rem);letter-spacing:-.045em;margin:.2rem 0 1.4rem}
h2{font-size:clamp(2.25rem,4.6vw,4.8rem);margin:0 0 1.2rem}
h3{font-size:clamp(1.35rem,2.1vw,2rem);margin:0 0 .8rem}
p{margin:0 0 1.15rem}
.shell{width:var(--shell);margin-inline:auto}.narrow{max-width:880px}.section-pad{padding:clamp(5rem,9vw,9rem) 0}.section-tint{background:color-mix(in srgb,var(--panel-2) 76%,transparent)}.section-ink{position:relative;background:#1b0f0a;color:#f7e8d3;border-block:2px solid #795039}.section-ink::before{content:attr(data-console-label);position:absolute;top:1rem;right:2rem;color:#c4a17f;font:700 .62rem var(--font-ui);letter-spacing:.12em}.section-ink h2,.section-ink h3{color:#fff5df}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mono{font-family:var(--font-ui);font-size:.72rem;color:var(--muted)}
.skip-link{position:fixed;z-index:1100;top:12px;left:12px;padding:.75rem 1rem;background:#713000;color:#fff;border:2px solid #fff;font:700 .72rem var(--font-ui);transform:translateY(-180%)}.skip-link:focus{transform:none}
.eyebrow{display:flex;align-items:center;gap:.7rem;font:800 .69rem var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin:0 0 1.2rem}.eyebrow::before{content:"";width:10px;height:10px;background:currentColor;box-shadow:4px 4px 0 color-mix(in srgb,currentColor 35%,transparent)}

.site-header{position:sticky;z-index:100;top:0;padding:12px 0;background:linear-gradient(var(--bg),color-mix(in srgb,var(--bg) 88%,transparent),transparent)}
.header-inner{min-height:68px;display:flex;align-items:center;gap:1.5rem;padding:0 12px;border:2px solid var(--line);background:color-mix(in srgb,var(--panel) 94%,transparent);box-shadow:6px 6px 0 color-mix(in srgb,var(--shadow) 70%,transparent);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:.8rem;margin-right:auto;text-decoration:none;min-width:0}.brand-mark{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;background:var(--cyan);color:#2c160d;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--amber);font:900 .68rem var(--font-ui)}.brand strong,.brand small{display:block}.brand strong{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font:800 .76rem var(--font-ui)}.brand small{margin-top:.25rem;color:var(--muted);font:700 .57rem var(--font-ui);letter-spacing:.14em}
.site-nav{display:flex;align-items:center;gap:1rem}.site-nav a{position:relative;min-height:44px;display:flex;align-items:center;padding:.8rem 0;color:var(--muted);font:800 .62rem var(--font-ui);letter-spacing:.04em;text-decoration:none;text-transform:uppercase}.site-nav a>span{opacity:0;color:var(--amber);margin-right:.3rem}.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--ink)}.site-nav a:hover>span,.site-nav a[aria-current="page"]>span{opacity:1}
.header-actions{display:flex;align-items:center;gap:.6rem}.language-switcher{display:flex;border:2px solid var(--line);background:var(--bg)}.language-switcher a{display:grid;place-items:center;min-width:44px;min-height:44px;color:var(--muted);font:800 .58rem var(--font-ui);text-decoration:none}.language-switcher a+a{border-left:1px solid var(--line)}.language-switcher a:hover{background:var(--panel-2);color:var(--ink)}.language-switcher a[aria-current="page"]{background:#9a491f;color:#fff;box-shadow:inset 0 -3px 0 #ffd27a}
.theme-control{position:relative;width:44px;height:44px;display:grid;place-items:center;border:2px solid var(--line);background:var(--bg)}.theme-control:hover{border-color:var(--amber)}.theme-control input{position:absolute;display:block;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.theme-control:has(input:focus-visible){outline:3px solid var(--amber);outline-offset:4px}.theme-icon{color:var(--amber);font:900 1.05rem var(--font-ui)}.nav-toggle{display:none;width:44px;height:44px;border:2px solid var(--line);background:var(--bg);padding:9px}.nav-toggle>span:not(.sr-only){display:block;height:2px;background:var(--ink);margin:5px 0;box-shadow:3px 0 0 var(--cyan)}

.hero{position:relative;display:grid;align-items:center;min-height:calc(100svh - 92px);overflow:hidden}.hero::after{content:"";position:absolute;z-index:-1;right:-7vw;top:8%;width:46vw;aspect-ratio:1;background:linear-gradient(135deg,color-mix(in srgb,var(--cyan) 13%,transparent) 25%,transparent 25% 50%,color-mix(in srgb,var(--amber) 8%,transparent) 50% 75%,transparent 75%);background-size:24px 24px;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:clamp(3rem,8vw,8rem);align-items:center}.hero-copy{animation:boot-in .55s steps(6,end) both}.boot-line{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-bottom:2.4rem;color:var(--muted);font:700 .58rem var(--font-ui);letter-spacing:.1em}.boot-line span:last-child{color:var(--lime)}.hero-headline{color:var(--cyan);font:800 clamp(.72rem,1.3vw,.92rem)/1.65 var(--font-ui);letter-spacing:.08em;text-transform:uppercase}.hero-intro{max-width:850px;font-size:clamp(1.45rem,2.5vw,2.3rem);line-height:1.27}.hero-proof{max-width:720px;color:var(--muted)}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2.2rem}
.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:.78rem 1.15rem;border:2px solid var(--line);background:var(--panel);color:var(--ink);font:800 .66rem var(--font-ui);letter-spacing:.065em;text-decoration:none;text-transform:uppercase;transition:color .18s ease-out,background .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out,transform .18s ease-out}.button:hover{transform:translate(-2px,-2px);border-color:var(--amber);box-shadow:5px 5px 0 var(--shadow);color:var(--ink)}.button-primary{background:var(--cyan);border-color:var(--cyan);color:#2c160d}.button-primary:hover{background:var(--amber);color:#2c160d}.button-secondary{background:transparent}.text-link,.card-link{color:var(--cyan);font:800 .68rem var(--font-ui);letter-spacing:.05em;text-decoration-thickness:2px;text-transform:uppercase}.external-icon{width:1em;height:1em;display:inline-block;flex:0 0 auto;vertical-align:-.14em}
.portrait-frame{position:relative;margin:0;border:2px solid var(--line-hot);background:var(--panel);box-shadow:12px 12px 0 var(--shadow);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px)}.portrait-frame::before{content:"";position:absolute;z-index:2;inset:10px;border:1px solid rgba(255,255,255,.3);pointer-events:none}.portrait-label{position:absolute;z-index:3;top:0;left:0;padding:.35rem .6rem;background:var(--amber);color:#07111c;font:900 .58rem var(--font-ui);letter-spacing:.1em}.portrait-frame img{width:100%;aspect-ratio:1/1.08;object-fit:cover;object-position:center top;filter:saturate(.65) contrast(1.08)}.portrait-frame figcaption{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-top:2px solid var(--line);color:var(--muted);font:700 .58rem var(--font-ui);text-transform:uppercase}.player-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.player-stats span{padding:.55rem;text-align:center;color:var(--lime);font:800 .58rem var(--font-ui)}.player-stats span+span{border-left:1px solid var(--line)}

.section-heading{margin-bottom:clamp(2.8rem,5vw,5rem)}.section-heading h2{margin:0}.split-heading{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end}.split-heading>p{max-width:600px;margin:0;color:var(--muted);font-size:1.23rem}.section-ink .split-heading>p{color:#d8bea0}
.current-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.current-card{position:relative;min-height:330px;padding:2rem;border:2px solid #795039;background:#21130d;box-shadow:5px 5px 0 #080402}.current-card:hover{border-color:#f1ad65}.current-card>p:first-of-type{color:#d8bea0;font:700 .62rem var(--font-ui);text-transform:uppercase}.current-card>p:last-child{color:#ead8bf}.current-card strong{color:#ffd27a;font:800 .72rem var(--font-ui)}.status-dot{position:absolute;right:1.25rem;top:1.25rem;width:9px;height:9px;background:#c5dc8a;box-shadow:0 0 0 4px rgba(197,220,138,.14);animation:status-pulse 1.8s steps(2,end) infinite}.mission-label{display:inline-block;margin-bottom:1.5rem;color:#c5dc8a;font:800 .55rem var(--font-ui);letter-spacing:.12em}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-grid-featured .project-card:nth-child(n+7){display:none}.project-card{position:relative;min-height:410px;display:flex;flex-direction:column;padding:1.8rem;border:2px solid var(--line);background:var(--panel);box-shadow:5px 5px 0 var(--shadow);transition:border-color .18s ease-out,box-shadow .18s ease-out,transform .18s ease-out}.project-card::after{content:"";position:absolute;right:-2px;top:-2px;width:18px;height:18px;border-top:6px solid var(--amber);border-right:6px solid var(--amber)}.project-card:hover{transform:translate(-2px,-2px);border-color:var(--cyan);box-shadow:8px 8px 0 var(--shadow)}.project-card[hidden]{display:none}.project-card-top,.project-card-meta{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font:700 .59rem var(--font-ui);text-transform:uppercase}.project-index{color:var(--amber)}.category-pill{padding:.15rem .5rem;border:1px solid var(--line)}.project-card h3{margin:2rem 0 1rem;font-family:var(--font-ui);font-size:1.25rem;line-height:1.25}.project-card h3 a{color:var(--ink);text-decoration:none}.project-card>p{color:var(--muted);font-size:.98rem}.project-card-meta{margin-top:auto;padding-top:1rem;border-top:1px dashed var(--line)}.private-note{margin:.85rem 0 0!important;color:var(--success)!important;font:700 .59rem var(--font-ui)!important}.card-link{align-self:flex-start;margin-top:1.35rem}
.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.skill-card{padding:2rem;border:2px solid var(--line);background:var(--panel)}.skill-card h3{font-family:var(--font-ui);font-size:1rem;color:var(--amber)}.tag-list{display:flex;flex-wrap:wrap;gap:.55rem;list-style:none;margin:0;padding:0}.tag-list li,.tag-list a{padding:.38rem .65rem;border:1px solid var(--line);background:var(--bg-raised);color:var(--muted);font:700 .62rem var(--font-ui);text-decoration:none}.tag-list a:hover{border-color:var(--cyan);color:var(--ink)}

.page-hero{position:relative;border-bottom:2px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 92%,transparent),color-mix(in srgb,var(--bg) 80%,transparent))}.page-hero::after{content:attr(data-console-label);position:absolute;right:2rem;bottom:1rem;color:var(--muted);font:700 .55rem var(--font-ui);letter-spacing:.08em}.page-hero h1{margin-bottom:2rem}.page-hero .narrow>p:last-child,.page-hero .narrow>p:not(.eyebrow){color:var(--muted);font-size:clamp(1.15rem,2vw,1.55rem)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(4rem,8vw,8rem)}.detail-block{padding-bottom:1.5rem;border-bottom:1px dashed var(--line)}.detail-block h2{font-family:var(--font-ui);font-size:1.45rem}.detail-block h2 a{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink);text-decoration-color:var(--cyan)}.detail-block h2 a:hover{color:var(--cyan)}.large-list,.principle-list{padding:0;list-style:none}.large-list li,.principle-list li{padding:1rem 0;border-bottom:1px dashed var(--line);font-size:1.16rem}.principle-list{counter-reset:principles}.principle-list li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;counter-increment:principles}.principle-list li::before{content:"0" counter(principles);color:var(--amber);font:800 .67rem var(--font-ui)}.language-list>div{display:flex;justify-content:space-between;gap:2rem;padding:1rem 0;border-bottom:1px dashed var(--line)}.language-list dt{font-weight:700}.language-list dd{margin:0;color:var(--muted);text-align:right}
.name-system{background:color-mix(in srgb,var(--bg) 86%,transparent)}.name-format-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.name-format-card{padding:1.8rem;border:2px solid var(--line);background:var(--panel);box-shadow:5px 5px 0 var(--shadow)}.name-format-card h3{font:800 1rem var(--font-ui);color:var(--muted)}.script-name{margin:1.2rem 0;color:var(--cyan);font:800 clamp(1.55rem,3vw,2.4rem) var(--font-ui);line-height:1.25}.name-format-card dl{margin:0 0 1.2rem}.name-format-card dl>div{padding:.75rem 0;border-top:1px dashed var(--line)}.name-format-card dt{color:var(--amber);font:700 .58rem var(--font-ui);text-transform:uppercase}.name-format-card dd{margin:.25rem 0 0;color:var(--ink);overflow-wrap:anywhere}.name-format-card>p:last-child{color:var(--muted);font-size:.94rem}.character-ledger{margin-top:3rem}.character-ledger>div{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.character-ledger article{padding:1.25rem;border:1px solid var(--line);background:var(--bg-raised)}.character-ledger strong{display:block;color:var(--amber);font:800 2.5rem var(--font-ui)}.character-ledger span{color:var(--cyan);font:700 .66rem var(--font-ui)}.character-ledger p{margin:.7rem 0 0;color:var(--muted);font-size:.9rem}

.experience-shell{max-width:1020px}.experience-group{margin-bottom:5rem}.experience-employer{display:flex;align-items:center;gap:1rem;padding:1rem;border:2px solid var(--line);background:var(--panel)}.experience-employer h2{font:800 1.55rem var(--font-ui);margin:0}.experience-employer h2 a{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink);text-decoration-color:var(--cyan)}.experience-employer h2 a:hover{color:var(--cyan)}.experience-employer p{margin:0;color:var(--muted)}.employer-mark{width:54px;height:54px;display:grid;place-items:center;background:#81410a;color:#fff;border:2px solid var(--amber);font:900 1.3rem var(--font-ui)}.progression-line{margin-left:27px;border-left:2px dashed var(--line)}.experience-item{display:grid;grid-template-columns:180px 1fr;gap:2rem;padding:2.4rem 0}.progression-line .experience-item{position:relative;padding-left:3rem}.progression-line .experience-item::before{content:"";position:absolute;left:-7px;top:3rem;width:12px;height:12px;background:var(--cyan);box-shadow:3px 3px 0 var(--shadow)}.experience-date{display:flex;align-items:flex-start;gap:.45rem;padding-top:.35rem;color:var(--muted);font:700 .62rem var(--font-ui)}.experience-content h3{font:800 1.25rem var(--font-ui);line-height:1.3}.experience-content>p:last-of-type{color:var(--muted)}.employer-name{margin-bottom:.25rem;font-weight:700}.employer-name a{display:inline-flex;align-items:center;gap:.35rem}.experience-type{color:var(--muted);font:700 .64rem var(--font-ui)}.organization-links{margin-top:1rem;padding:.8rem 1rem;border-left:3px solid var(--orange);background:color-mix(in srgb,var(--panel-2) 70%,transparent)}.organization-links>p{margin:0 0 .55rem;color:var(--amber);font:800 .58rem var(--font-ui);letter-spacing:.06em;text-transform:uppercase}.organization-links ul{display:flex;flex-wrap:wrap;gap:.5rem 1rem;list-style:none;margin:0;padding:0}.organization-links a{display:inline-flex;align-items:center;gap:.35rem;font:700 .64rem var(--font-ui)}.concurrent-badge,.featured-label{display:inline-block;margin:0 0 .7rem;padding:.24rem .5rem;background:var(--blue-light);color:var(--blue)!important;font:800 .56rem var(--font-ui)!important;letter-spacing:.06em;text-transform:uppercase}.single-role{border-top:2px dashed var(--line)}
.filter-bar{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:2rem}.filter-button{min-height:44px;padding:.58rem .9rem;border:2px solid var(--line);background:var(--panel);color:var(--muted);font:800 .62rem var(--font-ui);text-transform:uppercase}.filter-button:hover,.filter-button.is-active{border-color:var(--cyan);background:#9a491f;color:#fff;box-shadow:3px 3px 0 var(--shadow)}
.project-hero{position:relative;background:#1b0f0a;color:#f2dfc7;border-bottom:2px solid #795039}.project-hero::after{content:attr(data-console-label);position:absolute;right:2rem;top:2rem;color:#c4a17f;font:700 .55rem var(--font-ui);letter-spacing:.1em}.project-hero h1{max-width:850px;color:#fff5df}.project-hero .eyebrow{color:#ffd27a}.back-link{display:inline-block;margin-bottom:4rem;color:#f1ad65}.project-title-grid{display:grid;grid-template-columns:1fr 320px;gap:5rem;align-items:end}.project-facts{margin:0}.project-facts>div{padding:1rem 0;border-top:1px dashed #795039}.project-facts dt{color:#d8bea0;font:700 .6rem var(--font-ui);text-transform:uppercase}.project-facts dd{margin:.3rem 0 0;color:#fff5df}.private-banner{margin:3rem 0 0;padding:1rem;border:2px solid #71834a;background:#202613;color:#dceab8;font:700 .65rem var(--font-ui)}.case-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(4rem,10vw,9rem)}.case-main section+section{margin-top:5rem}.case-main h2{font-size:clamp(1.8rem,3vw,3rem);line-height:1.25}.contribution-list{list-style:none;padding:0;counter-reset:contribution}.contribution-list li{counter-increment:contribution;display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.3rem 0;border-top:1px dashed var(--line);font-size:1.12rem}.contribution-list li::before{content:"0" counter(contribution);color:var(--amber);font:800 .65rem var(--font-ui)}.case-sidebar{position:sticky;top:110px;align-self:start;padding:1.25rem;border:2px solid var(--line);background:var(--panel)}.case-links{display:grid;gap:.8rem;margin-top:2rem}.case-links .button{justify-content:space-between;gap:.8rem}.related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.related-grid a{display:flex;flex-direction:column;padding:1.25rem;border:2px solid var(--line);background:var(--panel);text-decoration:none}.related-grid a:hover{border-color:var(--cyan)}.related-grid span{color:var(--muted)}
.search-control{max-width:620px;min-height:52px;display:flex;align-items:center;gap:.8rem;padding:0 1rem;border:2px solid var(--line);background:var(--panel);margin-bottom:2rem}.search-control input{width:100%;border:0;background:transparent;color:var(--ink);outline:none}.search-control input::placeholder{color:var(--muted);opacity:1}.search-control:has(input:focus-visible){outline:3px solid var(--amber);outline-offset:4px;border-color:var(--amber)}.credential-grid,.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.credential-card,.repo-card{min-height:290px;display:flex;flex-direction:column;padding:1.5rem;border:2px solid var(--line);background:var(--panel);box-shadow:4px 4px 0 var(--shadow)}.credential-card:hover,.repo-card:hover{border-color:var(--cyan)}.credential-card[hidden]{display:none}.credential-card-header{display:flex;justify-content:space-between;align-items:start}.credential-year{color:var(--muted);font:700 .62rem var(--font-ui)}.credential-issuer{margin:2.2rem 0 .35rem;color:var(--amber);font:700 .65rem var(--font-ui)}.credential-card h2{font:800 1.1rem/1.35 var(--font-ui)}.credential-card code{color:var(--muted);word-break:break-word}.credential-proof{display:grid;grid-template-columns:1.3fr 1fr .7fr!important;gap:3px;margin:1.5rem 0 1rem;padding:8px;border:1px solid var(--line);background:var(--bg-raised)}.credential-proof span{height:5px;background:var(--line)}.credential-proof span:first-child{background:var(--orange)}.credential-actions{display:grid!important;gap:.7rem;margin-top:auto}.credential-actions .card-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:0}.card-link-subtle{color:var(--muted)}.credential-evidence-note{margin:1.3rem 0 .7rem;color:var(--muted);font-size:.84rem}.credential-card>a.card-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:auto}.empty-state{text-align:center;padding:4rem;border:2px dashed var(--line);color:var(--muted)}
.featured-repos{padding:1.5rem;border:2px solid var(--line);background:var(--panel);margin-bottom:3rem}.featured-repos .eyebrow{margin-bottom:1rem}.repo-controls{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:2rem;align-items:start}.repo-controls .search-control{width:100%}.repo-count{color:var(--muted);font:700 .65rem var(--font-ui)}.repo-card h2{font:800 1rem/1.35 var(--font-ui);overflow-wrap:anywhere}.repo-card h2 a{color:var(--cyan);text-decoration:none}.repo-card p{font-size:.92rem;color:var(--muted)}.repo-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:auto;font:700 .58rem var(--font-ui)}.repo-meta span{padding:.2rem .45rem;background:var(--bg-raised);border:1px solid var(--line)}.load-more{margin:2.5rem auto 0;display:flex}.load-more[hidden]{display:none}
.site-footer{margin:12px;border:2px solid #795039;background:#1b0f0a;color:#ead8bf;padding:5rem 0 2rem;box-shadow:8px 8px 0 #080402}.site-footer .eyebrow{color:#ffd27a}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem}.footer-callout{max-width:760px;color:#fff5df;font:800 clamp(1.8rem,4vw,3.6rem)/1.16 var(--font-ui)}.footer-links{display:grid;align-content:start}.footer-contact{padding:.8rem 0 1rem;border-block:1px dashed #795039}.footer-contact p{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:.8rem;margin:0;color:#f2dfc7;font:700 .68rem var(--font-ui)}.footer-contact p+p{margin-top:.4rem}.footer-contact-label{color:#c4a17f;text-transform:uppercase}.footer-contact-values{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .55rem;overflow-wrap:anywhere}.footer-contact a{min-height:44px;display:inline-flex;align-items:center;color:#f2dfc7;text-decoration:none}.footer-contact a:hover{color:#ffd27a}.footer-links>a{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px dashed #795039;color:#f2dfc7;font:700 .68rem var(--font-ui);text-decoration:none}.footer-links>a>span{color:#ffd27a}.footer-links>a:hover{padding-left:.5rem;color:#ffd27a}.footer-meta{display:flex;justify-content:space-between;gap:2rem;margin-top:4rem;padding-top:1.5rem;border-top:1px dashed #795039;color:#c4a17f;font:700 .58rem var(--font-ui);text-transform:uppercase}

@keyframes boot-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes status-pulse{50%{opacity:.45}}
@media(max-width:1100px){.site-nav{gap:.65rem}.site-nav a{font-size:.57rem}.brand strong{max-width:180px}}
@media(max-width:1100px){:root{--shell:min(100% - 36px,900px)}.site-nav{position:fixed;inset:92px 18px auto;padding:1.2rem;border:2px solid var(--line);background:var(--panel);box-shadow:6px 6px 0 var(--shadow);display:none;align-items:stretch;flex-direction:column}.site-nav.is-open{display:flex}.nav-toggle{display:block}.header-actions{margin-left:0}.hero-grid{grid-template-columns:1fr 300px;gap:3rem}.current-grid,.project-grid,.credential-grid,.repo-grid{grid-template-columns:repeat(2,1fr)}.current-card:nth-child(3){grid-column:1/-1}.project-title-grid{grid-template-columns:1fr 260px;gap:3rem}.repo-controls{grid-template-columns:1fr}.repo-controls .filter-bar{margin-top:-1rem}.name-format-grid{grid-template-columns:1fr 1fr}.name-format-card:last-child{grid-column:1/-1}}
@media(max-width:780px){:root{--shell:calc(100% - 28px)}body{font-size:1rem}.section-pad{padding:4.5rem 0}.header-inner{min-height:64px;gap:.55rem}.site-nav{top:84px}.brand strong{font-size:.68rem}.brand small{display:none}.brand-mark{width:38px;height:38px}.language-switcher a{min-width:44px;min-height:44px}.hero{min-height:auto}.hero-grid{grid-template-columns:1fr}.hero-copy{order:1}.portrait-frame{order:2;max-width:420px;margin:0 auto}.split-heading,.detail-grid,.project-title-grid,.case-layout,.footer-grid{grid-template-columns:1fr}.current-grid,.project-grid,.skill-grid,.credential-grid,.repo-grid,.name-format-grid,.character-ledger>div{grid-template-columns:1fr}.name-format-card:last-child{grid-column:auto}.experience-item{grid-template-columns:1fr;gap:.6rem}.progression-line .experience-item{padding-left:2rem}.experience-date{flex-wrap:wrap}.case-sidebar{position:static}.related-grid{grid-template-columns:1fr}.footer-meta{flex-direction:column}.header-actions{gap:.35rem}.theme-control{width:44px;height:44px}.page-hero::after,.project-hero::after{display:none}}
@media(max-width:520px){h1{font-size:clamp(2.65rem,14vw,4.1rem)}.lang-ja h1,.lang-zh h1{font-size:clamp(2.45rem,13vw,3.7rem)}.header-inner{min-height:auto;padding:10px;flex-wrap:wrap}.brand{min-width:44px;min-height:44px}.brand>span:last-child{display:none}.header-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 44px}.language-switcher{width:auto}.language-switcher a{flex:1;min-width:44px;min-height:44px}.site-nav{top:166px}.button-row{align-items:stretch}.button-row .button{flex:1 1 100%}.project-card{min-height:350px}.current-card{min-height:auto;padding:1.5rem}.project-title-grid{gap:2rem}.footer-callout{font-size:1.75rem}.site-footer{margin:8px}.boot-line{gap:.4rem .8rem}}
@media(max-width:520px){.footer-contact p{grid-template-columns:1fr;gap:.15rem}.footer-contact p+p{margin-top:.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Technopedia archive */
.blog-hero{position:relative;overflow:hidden;border-bottom:2px solid var(--line);background:linear-gradient(132deg,color-mix(in srgb,var(--panel) 96%,transparent),color-mix(in srgb,var(--bg) 86%,transparent))}.blog-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,var(--amber) 7%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--amber) 7%,transparent) 1px,transparent 1px);background-size:20px 20px;mask-image:linear-gradient(115deg,transparent 15%,#000 100%)}.blog-hero::after{content:attr(data-console-label);position:absolute;right:2rem;top:1rem;color:var(--muted);font:700 .57rem var(--font-ui);letter-spacing:.12em}.blog-hero .shell{position:relative}.blog-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:clamp(3rem,8vw,8rem);align-items:end}.blog-intro h1{margin-bottom:1.4rem;color:var(--ink);font-size:clamp(3.5rem,6.1vw,6.8rem);white-space:nowrap}.blog-title-prefix{color:var(--orange);font-family:var(--font-ui);font-size:.48em;letter-spacing:-.08em;vertical-align:.42em}.blog-deck{max-width:760px;color:var(--muted);font-size:clamp(1.25rem,2.3vw,1.75rem);line-height:1.42}.blog-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}.blog-actions .button{gap:.55rem}.archive-note{position:relative;padding:2rem;border:2px solid var(--line-hot);background:color-mix(in srgb,var(--bg-raised) 94%,transparent);box-shadow:9px 9px 0 var(--shadow)}.archive-note::before{content:"";position:absolute;top:-2px;right:-2px;width:30px;height:30px;border-top:9px solid var(--amber);border-right:9px solid var(--amber)}.archive-note-kicker{display:block;margin-bottom:2rem;color:var(--lime);font:800 .6rem var(--font-ui);letter-spacing:.14em}.archive-note h2{font:800 clamp(1.45rem,2.6vw,2.2rem)/1.2 var(--font-ui)}.archive-note p{color:var(--muted);font-size:.98rem}.archive-provenance{margin:1.5rem 0 0!important;padding-top:1.2rem;border-top:1px dashed var(--line);font:700 .63rem/1.65 var(--font-ui)!important}.blog-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:clamp(3.5rem,7vw,7rem) 0 0;border:2px solid var(--line);background:var(--panel)}.blog-stats>div{padding:1.15rem 1.35rem}.blog-stats>div+div{border-left:1px dashed var(--line)}.blog-stats dt{color:var(--muted);font:700 .58rem var(--font-ui);letter-spacing:.06em;text-transform:uppercase}.blog-stats dd{margin:.25rem 0 0;color:var(--amber);font:900 clamp(1.45rem,3vw,2.5rem) var(--font-ui)}
.blog-index{background:color-mix(in srgb,var(--bg) 91%,transparent)}.blog-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);gap:3rem;align-items:end}.blog-heading>p{max-width:520px;margin:0;color:var(--muted);font-size:1.18rem}.blog-controls{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:2rem;align-items:start;padding:1.2rem;border:2px solid var(--line);background:var(--panel);box-shadow:5px 5px 0 var(--shadow)}.blog-search{max-width:none;margin:0;background:var(--bg)}.blog-year-filter{justify-content:flex-end;margin:0}.blog-count{margin:2rem 0 1rem}.post-ledger{border-top:2px solid var(--line)}.blog-post-card{display:grid;grid-template-columns:145px minmax(0,1fr) 52px;gap:1.35rem;align-items:center;min-height:132px;padding:1.25rem;border-bottom:1px dashed var(--line);transition:background .18s ease-out,border-color .18s ease-out,transform .18s ease-out}.blog-post-card:hover{background:var(--panel);border-color:var(--line-hot);transform:translateX(4px)}.blog-post-card[hidden]{display:none}.post-sequence{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;padding-right:1.2rem;border-right:1px solid var(--line);color:var(--muted);font:700 .58rem var(--font-ui)}.post-sequence span{color:var(--amber);font-size:1.15rem}.post-copy{min-width:0}.post-copy h3{margin:0 0 .65rem;font:800 clamp(1.04rem,1.6vw,1.34rem)/1.35 var(--font-ui)}.post-copy h3 a{color:var(--ink);text-decoration:none}.post-copy h3 a:hover{color:var(--cyan)}.post-copy p{margin:0;color:var(--muted);font:700 .6rem/1.55 var(--font-ui);overflow-wrap:anywhere}.post-open{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted);text-decoration:none}.post-open:hover{border-color:var(--amber);background:var(--panel-2);color:var(--amber)}.blog-more{min-width:230px}
@media(max-width:900px){.blog-hero-grid,.blog-heading,.blog-controls{grid-template-columns:1fr}.archive-note{max-width:680px}.blog-year-filter{justify-content:flex-start}.blog-post-card{grid-template-columns:125px minmax(0,1fr) 48px}}
@media(max-width:640px){.blog-hero::after{display:none}.blog-intro h1{font-size:clamp(2.7rem,13vw,4.3rem)}.blog-actions{align-items:stretch}.blog-actions .button{flex:1 1 100%}.blog-stats{grid-template-columns:1fr}.blog-stats>div+div{border-left:0;border-top:1px dashed var(--line)}.blog-controls{padding:.8rem}.blog-year-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.4rem}.blog-year-filter .filter-button{flex:0 0 auto}.blog-post-card{grid-template-columns:1fr 44px;gap:.85rem;padding:1.2rem 0}.post-sequence{grid-column:1/-1;align-self:auto;flex-direction:row;padding:0 0 .6rem;border-right:0;border-bottom:1px solid var(--line)}.post-copy h3{font-size:1rem}.post-open{align-self:start}}
