:root{color-scheme:dark;--bg: #040705;--bg-2: #0a120e;--fg: #eef3ee;--mute: #aebbb2;--line: rgba(255, 204, 51, .22);--a: #16ff9a;--a-ink: #03150d;--g: #ffcc33;--tile: rgba(5, 12, 9, .8);--scrim: rgba(3, 7, 5, .62);--k: rgba(255, 204, 51, .09);--glow: 0 0 22px rgba(22, 255, 154, .45);--f-d: "Shippori Mincho B1", "Hiragino Mincho ProN", "Times New Roman", serif;--f-b: "Zen Kaku Gothic New", "Hiragino Sans", "Helvetica Neue", Arial, sans-serif;--f-m: "IBM Plex Mono", ui-monospace, Menlo, monospace;--f-k: "Yuji Boku", "Hiragino Mincho ProN", serif;--head: 68px;--gut: max(20px, env(safe-area-inset-left, 0px))}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){color-scheme:light;--bg: #ffffff;--bg-2: #f6f4f1;--fg: #0a0a0c;--mute: #3e3d3f;--line: rgba(10, 10, 12, .2);--a: #806000;--a-ink: #ffffff;--g: #c58e00;--tile: rgba(255, 255, 255, .86);--scrim: rgba(255, 255, 255, .7);--k: rgba(10, 10, 12, .07);--glow: 0 0 20px rgba(242, 178, 0, .5)}}:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-2: #f6f4f1;--fg: #0a0a0c;--mute: #3e3d3f;--line: rgba(10, 10, 12, .2);--a: #806000;--a-ink: #ffffff;--g: #c58e00;--tile: rgba(255, 255, 255, .86);--scrim: rgba(255, 255, 255, .7);--k: rgba(10, 10, 12, .07);--glow: 0 0 20px rgba(242, 178, 0, .5)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-b);font-size:17px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3,p,ul,ol,pre{margin:0;padding:0}ul,ol{list-style:none}a{color:inherit}:focus-visible{outline:2px solid var(--g);outline-offset:3px}.skip{position:fixed;left:12px;top:-60px;z-index:40;background:var(--bg);padding:8px 14px;border:1px solid var(--g)}.skip:focus{top:10px}.stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:var(--bg);pointer-events:none}.stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.no-webgl .stage{background:radial-gradient(60% 60% at 70% 40%,var(--bg-2),var(--bg))}.c-sprite{will-change:transform}.kanji{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate3d(var(--kx, 0),var(--ky, 0),0)}.kanji span{position:absolute;top:50%;font:400 min(92vh,62vw)/1 var(--f-k);color:var(--k);opacity:0;transform:translate(-50%,-50%) scale(1.08) rotate(3deg);transition:opacity 1s,transform 1.5s cubic-bezier(.2,.7,.2,1);-webkit-user-select:none;user-select:none}.kanji span[data-on=true]{opacity:1;transform:translate(-50%,-50%)}.k0{left:70%}.k1{left:29%}.k2{left:71%}.k3{left:30%}.k4{left:50%}.k5{left:72%}.top{position:fixed;inset:0 0 auto;z-index:20;height:calc(var(--head) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(28px,env(safe-area-inset-right,0px)) 0 max(28px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:28px;background:linear-gradient(var(--scrim),transparent)}.brand{display:flex;align-items:center;gap:12px;font:700 18px/1 var(--f-d);text-decoration:none}.seal{width:32px;height:32px;display:grid;place-items:center;background:var(--a);color:var(--a-ink);font:400 20px/1 var(--f-k);border-radius:3px;transform:rotate(-3deg)}.top nav{display:flex;gap:26px;margin-left:auto}.top nav a{font-size:14px;font-weight:500;text-decoration:none;padding:8px 0;position:relative}.top nav a:after{content:"";position:absolute;left:0;right:0;bottom:3px;height:1.5px;background:var(--a);transform:scaleX(0);transform-origin:left;transition:transform .28s}.top nav a[aria-current]:after{transform:scaleX(1);box-shadow:var(--glow)}@media (hover: hover) and (pointer: fine){.top nav a:hover:after{transform:scaleX(1)}.mode:hover{border-color:var(--g)}}.mode{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 10px;background:var(--tile);color:var(--fg);border:1px solid var(--line);border-radius:3px;font:500 14px/1 var(--f-b);cursor:pointer}.mode-k{font:400 20px/1 var(--f-k);color:var(--g)}.rail{position:fixed;left:max(24px,env(safe-area-inset-left,0px));top:50%;z-index:15;transform:translateY(-50%);display:flex;flex-direction:column;gap:18px;padding-left:14px}.rail:before,.rail-fill{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1.5px;background:var(--line)}.rail-fill{background:var(--a);transform-origin:top;box-shadow:var(--glow)}.rail a{position:relative;pointer-events:auto;display:flex;align-items:center;gap:10px;font:400 21px/1 var(--f-k);text-decoration:none;color:var(--mute);opacity:.62;transition:color .3s,opacity .3s,transform .3s}.rail a em{position:absolute;left:calc(100% + 8px);font:500 11px/1 var(--f-m);letter-spacing:.08em;text-transform:uppercase;opacity:0;transform:translate(-6px);transition:.3s;white-space:nowrap;pointer-events:none}.rail a[data-past=true]{opacity:.9}.rail a[data-on=true]{color:var(--a);opacity:1;transform:scale(1.18);transform-origin:left;text-shadow:var(--glow)}@media (hover: hover) and (pointer: fine){.rail a:hover em{opacity:1;transform:none;color:var(--fg);text-shadow:none;background:var(--tile);padding:5px 7px}}.bar{display:none;position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);height:2px;z-index:30;background:var(--a);transform-origin:left}.loading{position:fixed;right:28px;bottom:16px;z-index:18;font:400 12px/1 var(--f-m);color:var(--mute)}main{position:relative;z-index:5}.ch{position:relative;min-height:125svh}.ch-long{min-height:155svh}.ch-work{min-height:145svh}.ch-end,.ch-hero{min-height:115svh}.pin{position:sticky;top:0;height:100svh;min-height:620px;padding:calc(var(--head) + 12px) max(40px,env(safe-area-inset-right,0px)) 24px max(104px,env(safe-area-inset-left,0px));display:flex;align-items:center}.ch-right .pin{justify-content:flex-end}.col{width:min(46vw,620px);display:flex;flex-direction:column;gap:16px;min-width:0}.col-wide{width:min(50vw,680px);gap:10px}.tag{font:500 12px/1.2 var(--f-m);letter-spacing:.14em;text-transform:uppercase;color:var(--a);margin-bottom:6px}h2{font:700 clamp(2.4rem,4.6vw,4.1rem)/1.04 var(--f-d);letter-spacing:-.01em;text-wrap:balance}h2.big{font-size:clamp(2.8rem,6vw,5.6rem);line-height:1}.body{max-width:58ch;color:var(--fg);text-shadow:0 1px 12px var(--bg),0 0 2px var(--bg)}.body.sm{font-size:16px;line-height:1.55}.ch-right .pin:before,.ch-left .pin:before,.ch-work .pin:before,.ch-hero .pin:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent)}.ch-right .pin:before{background:linear-gradient(to left,var(--scrim) 34%,transparent 62%)}.ch-left .pin:before,.ch-hero .pin:before{background:linear-gradient(to right,var(--scrim) 34%,transparent 62%)}.ch-work .pin:before{background:linear-gradient(to right,var(--scrim) 24%,transparent 40%,transparent 60%,var(--scrim) 76%)}.hero-copy{max-width:620px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-shadow:0 1px 14px var(--bg)}.eyebrow{display:flex;flex-wrap:wrap;gap:4px 16px;font:500 13px/1.3 var(--f-m);color:var(--mute)}.eyebrow span:first-child{color:var(--a)}h1{font:800 clamp(3.6rem,8.8vw,8.4rem)/.98 var(--f-d);letter-spacing:-.02em;margin:4px 0 4px -4px}.role{font:700 clamp(1.3rem,2.3vw,2rem)/1.2 var(--f-d);color:var(--a)}.focus{font-size:15px;font-weight:500}.lede{max-width:46ch;margin-top:4px}.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.btn{display:inline-flex;align-items:center;min-height:46px;padding:0 22px;font:700 15px/1 var(--f-b);text-decoration:none;color:var(--fg);background:var(--tile);border:1px solid var(--line);cursor:pointer;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px))}.btn-p{background:var(--a);color:var(--a-ink);border-color:var(--a)}.kana{position:absolute;right:max(32px,3vw);top:22%;writing-mode:vertical-rl;font:500 clamp(1.3rem,2.2vw,1.9rem)/1 var(--f-d);letter-spacing:.24em;color:var(--a);text-shadow:var(--glow)}.hint{position:absolute;left:max(104px,env(safe-area-inset-left,0px));bottom:26px;display:flex;align-items:center;gap:12px;font:400 13px/1 var(--f-m);color:var(--mute)}.hint i{width:1.5px;height:30px;background:linear-gradient(var(--a),transparent);animation:drip 2s ease-in-out infinite;transform-origin:top}.hint-x{display:none;margin-left:18px}@media (hover: hover) and (pointer: fine){.hint-x{display:inline}}@keyframes drip{50%{transform:scaleY(.45)}}.pillars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.pillars li{padding:10px 10px 12px;background:var(--tile);border-top:2px solid var(--a);display:flex;flex-direction:column;gap:3px;min-width:0}.pillars strong{font:700 16px/1.2 var(--f-d)}.pillars span{font-size:12.5px;line-height:1.35;color:var(--mute)}.who{font:400 12.5px/1.6 var(--f-m);padding:11px 14px;background:var(--tile);border:1px solid var(--line);overflow-x:auto}.who b{color:var(--a);font-weight:500}.groups{display:flex;flex-direction:column;gap:12px}.group{padding-left:14px;border-left:2px solid var(--line);transition:border-color .5s}.group[data-lit=true]{border-color:var(--a)}.group h3{font:500 12px/1.2 var(--f-m);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:7px}.group ul{display:flex;flex-wrap:wrap;gap:6px}.group li{font-size:14.5px;font-weight:500;padding:6px 12px;background:var(--tile);border:1px solid var(--line)}.group[data-lit=true] li{border-color:color-mix(in srgb,var(--a) 46%,transparent)}.road{display:flex;flex-direction:column;margin-top:6px;position:relative;background:var(--tile);padding:2px 4px 2px 0}.road li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:7px 12px 7px 0;align-items:center;border-bottom:1px solid var(--line);transition:background .35s,transform .35s}.road li:last-child{border-bottom:0}.road li[data-now=true]{background:color-mix(in srgb,var(--a) 11%,transparent);transform:translate(-8px);box-shadow:inset 2px 0 0 var(--a)}.road .n{font:400 19px/1 var(--f-k);color:var(--mute);text-align:center}.road li[data-past=true] .n{color:var(--a)}.road h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;font:700 17px/1.25 var(--f-d)}.road small{font:500 12.5px/1.2 var(--f-b);color:var(--a)}.road p{font-size:13.5px;line-height:1.4;color:var(--mute)}.ch-work .pin{padding-left:max(96px,env(safe-area-inset-left,0px))}.work{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 34vw;align-items:start}.w-l,.w-r{display:flex;flex-direction:column;gap:12px;min-width:0}.w-r .body{min-height:92px;display:flex;align-items:flex-end;padding-bottom:2px}.w-l>div:first-child{min-height:92px}.card{position:relative;padding:15px 16px 16px 62px;background:var(--tile);border:1px solid var(--line);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));overflow:hidden}.card h3{font:700 19px/1.2 var(--f-d)}.card p{font-size:14px;line-height:1.42;color:var(--mute)}.card .mark{position:absolute;left:15px;top:15px;font:400 30px/1 var(--f-k);color:var(--mute)}.card .kerf{position:absolute;left:-10%;right:-10%;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--g),var(--a),transparent);transform:rotate(-11deg) scaleX(0);box-shadow:var(--glow)}.card[data-cut=true]{border-color:color-mix(in srgb,var(--a) 58%,transparent);animation:open .62s cubic-bezier(.2,.8,.2,1)}.card[data-cut=true] .mark{color:var(--a);text-shadow:var(--glow)}.card[data-cut=true] .kerf{animation:kerf .6s ease-out}@keyframes open{0%{transform:skew(-4deg) translate(-10px);filter:brightness(2.1)}to{transform:none;filter:none}}@keyframes kerf{0%{transform:rotate(-11deg) scaleX(0);opacity:1}60%{transform:rotate(-11deg) scaleX(1);opacity:1}to{transform:rotate(-11deg) scaleX(1);opacity:0}}.mail{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:8px}.mail a{font:700 clamp(1.1rem,2vw,1.5rem)/1.2 var(--f-d);color:var(--fg);text-underline-offset:5px;text-decoration-color:var(--a);overflow-wrap:anywhere}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.socials{display:flex;gap:14px}.foot{font-size:14px;margin-top:8px}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){animation:wipe .8s cubic-bezier(.7,0,.2,1) both}@keyframes wipe{0%{clip-path:polygon(0 0,0 0,0 0,0 0)}to{clip-path:polygon(0 0,240% 0,0 240%,0 0)}}@media (min-width: 1700px) and (min-height: 900px){.col,.hero-copy,.w-l,.w-r{zoom:1.2}.kana{font-size:2.2rem}}@media (max-height: 780px) and (min-width: 760px){body{font-size:16px}.pillars li{padding:8px}.who{display:none}.road li{padding-block:4px}.road p{font-size:13px}.card{padding-block:11px}.card .mark{top:11px}h2{font-size:clamp(2.2rem,3.8vw,3.2rem)}}@media (max-width: 1179px){.rail a em{display:none}.pin{padding-left:max(72px,env(safe-area-inset-left,0px));padding-right:28px}.top nav{gap:18px}.col,.col-wide{width:min(56vw,600px)}.pillars{grid-template-columns:repeat(3,minmax(0,1fr))}.ch-work .pin{justify-content:flex-end;padding-left:28px}.work{width:min(58vw,620px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.w-l>div:first-child,.w-r .body{min-height:112px}.card{padding:12px}.card .mark{display:none}.k1,.k3,.k4{left:24%}.k2,.k5,.k0{left:76%}.ch-right .pin{justify-content:flex-end}.ch-left .col{width:min(52vw,560px)}.hero-copy{max-width:50vw}h1{font-size:clamp(3.2rem,7.2vw,5.6rem)}.kana{display:none}.ch-work .pin:before{background:linear-gradient(to left,var(--scrim) 48%,transparent 68%)}}@media (max-width: 759px),(max-width: 1100px) and (max-aspect-ratio: 1/1){:root{--head: 58px}body{font-size:16.5px}.rail,.kana,.hint{display:none}.bar{display:block}.top{padding-inline:max(20px,env(safe-area-inset-left,0px));gap:12px}.mode{margin-left:8px}.col,.hero-copy,.work{max-width:680px!important;margin-inline:auto}.ch,.ch-long,.ch-work,.ch-end,.ch-hero{min-height:0}.pin{position:relative;height:auto;min-height:0;display:block;padding:42svh max(16px,env(safe-area-inset-right,0px)) 8svh max(16px,env(safe-area-inset-left,0px))}.ch-hero .pin{padding-top:47svh;padding-bottom:12svh}.top{background:var(--scrim);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ch-work .pin{padding-left:max(16px,env(safe-area-inset-left,0px))}.col,.col-wide,.hero-copy,.work,.ch-left .col{width:100%;max-width:none}.pin:before,.ch-right .pin:before,.ch-left .pin:before,.ch-work .pin:before,.ch-hero .pin:before{display:none}.col,.hero-copy,.work{padding:18px 16px 20px;background:var(--scrim);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border-top:2px solid var(--a)}h1{font-size:clamp(2.9rem,14vw,4.4rem)}.hero-copy{gap:6px;padding-block:14px 16px}.cta{margin-top:8px}.work{display:flex;flex-direction:column;gap:12px}.w-l>div:first-child,.w-r .body{min-height:0}.card{padding:14px 14px 14px 56px}.card .mark{display:block;left:13px;top:14px}.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}.pillars li:last-child{grid-column:1 / -1}.road li{padding-block:9px}.road li[data-now=true]{transform:none}.kanji span,.k0,.k1,.k2,.k3,.k4,.k5{left:50%;top:34%;font-size:92vw}.loading{right:16px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}}@media (max-width: 759px){.top nav{display:none}.mode{margin-left:auto}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.kanji span,.card,.group,.road li,.hint i{transition:none;animation:none}.card[data-cut=true],.card[data-cut=true] .kerf{animation:none}}.road h3 a{text-decoration-thickness:1px;text-underline-offset:3px}.external{color:var(--a);font:500 13px/1 var(--f-b)}.project-links{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:7px}.project-links a{position:relative;z-index:1;padding-block:3px;color:var(--a);font-size:13px;text-underline-offset:3px}.card .kerf{pointer-events:none}.contact-actions{margin-top:4px}.contact-actions .btn{gap:8px}.phone{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline}.phone span{color:var(--mute);font-size:14px}.phone a,.socials a{padding-block:6px;text-underline-offset:4px}.socials{flex-wrap:wrap}.static-resume{max-width:960px;margin:auto;padding:32px 24px}.static-resume section{margin-block:48px;scroll-margin-top:24px}.static-resume h1{font-size:clamp(2.8rem,7vw,5rem)}.static-resume h2,.static-resume h3{margin-block:16px 8px}.static-resume li{margin-block:12px}.static-resume a{color:var(--a)}@media (max-height: 700px) and (min-width: 1101px),(max-height: 700px) and (min-width: 760px) and (min-aspect-ratio: 1/1){.pin{position:relative;height:auto;min-height:100svh;padding-block:calc(var(--head) + 24px) 40px}}
