:root{--spine-x:110px;--content-x:270px;--nav-h:64px}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased}a{color:inherit}@property --head-a{syntax:"<color>";inherits:false;initial-value:#0000}@property --head-b{syntax:"<color>";inherits:false;initial-value:#0000}.nav,.ruler-bar{--head-a:var(--paper);--head-b:var(--paper);--head-mid:color-mix(in srgb, var(--surface) 50%, var(--paper));background:linear-gradient(var(--head-a), var(--head-b));transition:--head-a .5s,--head-b .5s}.nav{top:env(safe-area-inset-top,0px);z-index:20;position:sticky}.nav.stuck{--head-a:var(--paper);--head-b:var(--head-mid)}.ruler-bar.stuck{--head-a:var(--head-mid);--head-b:var(--surface)}.nav .wrap{height:var(--nav-h);justify-content:space-between;align-items:center;gap:16px;display:flex}.socials{gap:10px;display:flex}.socials a{border:1px solid var(--rule);width:38px;height:38px;color:var(--ink);background:var(--surface);border-radius:9px;place-items:center;transition:border-color .2s,color .2s,transform .2s;display:grid}.socials a:hover{border-color:var(--indigo);color:var(--indigo);transform:translateY(-2px)}.socials svg{width:18px;height:18px}.links{font-family:var(--font-mono);align-items:center;gap:4px;font-size:14px;display:flex}.links a{border-radius:6px;padding:6px 10px;text-decoration:none}.links a:hover{background:var(--indigo-soft);color:var(--indigo)}.links .sep{color:var(--muted)}.theme-btn{border:1px solid var(--rule);background:var(--surface);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:50%;place-items:center;margin-left:8px;display:grid}.theme-btn svg{width:16px;height:16px}.hero{padding-block:72px 40px}.hero .wrap{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;display:grid}.hello{font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.status{border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:99px;align-items:center;gap:7px;padding:3px 10px;display:inline-flex}.status i{background:#2f9e6a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #2f9e6a38}h1{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:14px 0 12px;font-size:clamp(40px,7vw,76px);font-weight:800;line-height:1.02}.lede{color:var(--muted);text-wrap:pretty;max-width:58ch;margin:0;font-size:clamp(17px,2vw,20px)}.lede b{color:var(--ink);font-weight:500}.portrait{gap:8px;width:176px;margin:0;display:grid}.portrait img{aspect-ratio:4/5;object-fit:cover;border:1.5px solid var(--ink);background:var(--land);border-radius:16px;width:100%;height:auto;display:block}.ruler-bar{top:calc(env(safe-area-inset-top,0px) + var(--nav-h));z-index:15;border-bottom:1px solid var(--rule);position:sticky;overflow-x:clip}.ruler-head{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.readout-cloth{isolation:isolate;--hk:0;--halo:var(--head-mid);min-width:0;transition:--hk .5s;display:flex;position:relative}.stuck .readout-cloth{--hk:1}.readout-dye{z-index:-1;pointer-events:none;opacity:0;--across:linear-gradient(to right, transparent, #0000001a 12px, #00000061 24px, #000000c2 36px, #000 46px, #000 calc(100% - 46px), #000000c2 calc(100% - 36px), #00000061 calc(100% - 24px), #0000001a calc(100% - 12px), transparent);--down:linear-gradient(transparent, #0000001f 16%, #00000080 32%, #000 50%, #00000080 68%, #0000001f 84%, transparent);-webkit-mask-image:var(--across), var(--down);mask-image:var(--across), var(--down);-webkit-mask-composite:source-in;transition:opacity 1s;position:absolute;inset:-4px -46px;mask-composite:intersect}.stuck .readout-dye.on{opacity:var(--readout-cloth,.24)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .readout-cloth{--readout-cloth:.38}}:root[data-theme=dark] .readout-cloth{--readout-cloth:.38}.readout{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-block:-5px;padding-block:5px;font-size:13px;overflow:hidden}.readout b{color:var(--ink);font-weight:500}.controls{align-items:center;gap:6px;display:flex}.chipbtn{font:500 12px/1 var(--font-mono);border:1px solid var(--rule);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:99px;padding:7px 11px}.chipbtn[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chipbtn.icon{padding:6px 9px}.ruler{grid-column:1/-1;height:46px;position:relative}.ruler .track{background:var(--rule);height:1px;transition:background .5s;position:absolute;top:23px;left:0;right:0}.stuck .ruler .track{background:color-mix(in srgb, var(--muted) 55%, transparent)}.ruler .track:after{content:"";left:var(--at,100%);background:var(--indigo);opacity:0;border-radius:3px;height:3px;transition:left .35s,opacity .5s;position:absolute;top:-1px;right:0}.stuck .ruler .track:after{opacity:1}.ruler .band{background:var(--japan);border-radius:4px;transition:background .5s;position:absolute;top:4px;bottom:4px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .stuck .ruler .band{background:color-mix(in srgb, var(--indigo) 17%, var(--surface))}}:root[data-theme=dark] .stuck .ruler .band{background:color-mix(in srgb, var(--indigo) 17%, var(--surface))}.ruler .band span{font:500 10px/1 var(--font-mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding-top:4px;position:absolute;top:-1px;left:16px}.ruler .tick{font:400 10px/1 var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;position:absolute;top:28px;transform:translate(-50%)}.ruler .tick:before{content:"";background:var(--rule);width:1px;height:5px;position:absolute;top:-8px;left:50%}.stuck .ruler .tick:before{background:var(--muted)}.ruler .dot{cursor:pointer;background:var(--muted);opacity:.35;border:0;border-radius:50%;width:11px;height:11px;padding:0;transition:opacity .25s,transform .25s,background .25s;position:absolute;transform:translate(-50%,-50%)}.ruler .dot.work{top:23px}.ruler .dot.project{background:var(--indigo);border-radius:2px;width:10px;height:10px;top:23px}.ruler .dot.lit{opacity:1}.ruler .dot.work.lit{background:var(--ink)}.ruler .dot.current{transform:translate(-50%,-50%)scale(1.5)}.ruler .dot:hover{opacity:1;transform:translate(-50%,-50%)scale(1.5)}.ruler .cursor{background:var(--indigo);pointer-events:none;border-radius:2px;width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px)}.ruler .cursor:after{content:"";background:var(--indigo);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-3px}.legend{font:400 12px/1 var(--font-mono);color:var(--muted);align-items:center;gap:14px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{background:var(--ink);border-radius:50%;width:9px;height:9px;display:inline-block}.legend i.ring{border:1.5px solid var(--muted);background:0 0}.legend i.sq{background:var(--indigo);border-radius:2px}.timeline{padding-block:56px 120px;position:relative}.timeline:before{content:"";top:0;bottom:136px;left:var(--spine-x);background:var(--ink);opacity:.85;width:2px;position:absolute;transform:translate(-1px)}.era{min-height:260px;margin-bottom:96px;position:relative}.place{top:0;left:calc(var(--spine-x) - 90px);z-index:2;background:var(--surface);border:1.5px solid var(--ink);border-radius:16px;width:180px;height:220px;position:absolute;overflow:hidden}.place .map{width:100%;height:100%;display:block;position:absolute;inset:0}.map .grid{fill:none;stroke:var(--rule);stroke-width:1px}.map .water{fill:var(--surface)}.map .land{fill:var(--land);stroke:var(--muted);stroke-width:.6px;stroke-linejoin:round}.map .lake{fill:var(--surface)}.map .river{fill:none;stroke:var(--river);stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round}.map .pin{cursor:default}.map .pin path{fill:var(--indigo);stroke:var(--surface);stroke-width:1px}.map .pin .hole{fill:var(--surface)}.map .pin .pulse{fill:none;stroke:var(--indigo);stroke-width:1.2px;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-out infinite pulse}.map .pin text{font:500 8px/1 var(--font-mono);fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:2.5px;stroke-linejoin:round}@keyframes pulse{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.map .pin .pulse{opacity:0;animation:none}}.place .glyph{font-family:var(--font-display);color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:4px 6px;font-size:24px;font-weight:800;line-height:1;position:absolute;top:10px;left:10px}.place .meta{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:6px 8px;position:absolute;bottom:8px;left:8px;right:8px}.place .name{font-size:15px;font-weight:600;line-height:1.25}.place .years{font:500 11px/1 var(--font-mono);color:var(--indigo);margin-top:4px}.entries{margin-left:var(--content-x);gap:96px;display:grid}.entry{scroll-margin-top:calc(var(--nav-h) + 110px);position:relative}.entry .node{left:calc(var(--spine-x) - var(--content-x));border:2px solid var(--ink);background:var(--paper);border-radius:50%;width:18px;height:18px;position:absolute;top:6px;transform:translate(-50%)}.entry.learning .node{border-style:dashed;width:14px;height:14px}.ruler .dot.learning{border:1.5px solid var(--muted);background:0 0;width:10px;height:10px;top:23px}.ruler .dot.learning.lit{border-color:var(--ink)}.ruler .span{background:repeating-linear-gradient(90deg, var(--muted) 0 4px, transparent 4px 7px);opacity:.7;border-radius:2px;height:2px;position:absolute;top:33px}.entry.project .node{border-color:var(--indigo);background:var(--indigo-soft);border-radius:4px;transform:translate(-50%)rotate(45deg)}.entry.first .node{display:none}.node-date{left:calc(var(--spine-x) - var(--content-x) - 20px);font:400 11px/1 var(--font-mono);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;transition:color .35s;position:absolute;top:15px;transform:translate(-100%,-50%)}.node-date .short{display:none}.entry.project .node-date{left:calc(var(--spine-x) - var(--content-x) - 24px)}.entry.inked .node-date{color:var(--ink)}.entry.active .node-date{color:var(--ink);font-weight:500}.entry.project.active .node-date{color:var(--indigo)}.entry.first .node-date,.entry.hidden{display:none}.entry-grid{grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:start;gap:20px 40px;display:grid}.eyebrow{font:500 12px/1 var(--font-mono);color:var(--muted);letter-spacing:.03em;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.kind{--cap:26px;--cap-gap:7px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);text-transform:uppercase;letter-spacing:.08em;border-radius:5px;align-items:center;padding:4px 8px;font-size:10.5px;display:inline-flex;overflow:hidden}.project .kind{background:var(--indigo-soft);color:var(--indigo);border-color:#0000}.kind .mon{align-self:stretch;width:0;margin:-4px 0;transition:width .55s cubic-bezier(.3,.7,.3,1),margin .55s cubic-bezier(.3,.7,.3,1);position:relative;overflow:hidden}.entry.inked .kind .mon{width:var(--cap);margin:-4px var(--cap-gap) -4px -8px}.kind .mon:before{content:"";clip-path:circle(0% at 35% 65%);opacity:.4;background:0 0;transition:clip-path .7s cubic-bezier(.2,.7,.3,1) .12s,opacity .4s .12s;position:absolute;inset:0}.entry.inked .kind .mon:before{clip-path:circle(75% at 35% 65%);opacity:1}.kind .mon.logo{background:color-mix(in srgb, var(--indigo) 8%, var(--surface));place-items:center;display:grid}.kind .mon.logo:before{content:none}.kind .mon.logo img{object-fit:contain;opacity:0;border-radius:3px;width:14px;height:14px;transition:opacity .4s .2s,transform .5s cubic-bezier(.3,1.4,.5,1) .2s;transform:scale(.6)}.entry.inked .kind .mon.logo img{opacity:1;transform:none}@media (width<=560px){.kind .mon.logo img{width:12px;height:12px}}@media (width<=380px){.kind .mon.logo img{width:10px;height:10px}}@media (prefers-reduced-motion:reduce){.kind .mon,.kind .mon:before,.kind .mon.logo img{transition:none}}.entry-head{isolation:isolate;width:fit-content;max-width:100%;position:relative}.entry-head:before{content:"";z-index:-1;pointer-events:none;opacity:0;background-position:0 0;transition:opacity .9s;position:absolute;inset:-42px -52px -30px -60px;-webkit-mask-image:radial-gradient(closest-side,#000 8%,#000000d1 24%,#0000008f 42%,#0000004d 60%,#0000001f 76%,#00000008 90%,#0000);mask-image:radial-gradient(closest-side,#000 8%,#000000d1 24%,#0000008f 42%,#0000004d 60%,#0000001f 76%,#00000008 90%,#0000)}.entry.active .entry-head:before{opacity:var(--head-wash,.2)}@media (prefers-reduced-motion:reduce){.entry-head:before{transition:none}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .entry{--head-wash:.3}}:root[data-theme=dark] .entry{--head-wash:.3}.entry h2{font-family:var(--font-display);text-wrap:balance;margin:12px 0 2px;font-size:clamp(26px,3.2vw,34px);font-weight:700;line-height:1.12}.entry .sub{color:var(--muted);margin:0 0 14px;font-size:16px}.entry .sub b{color:var(--ink);font-weight:500}.entry ul.points{gap:10px;max-width:62ch;margin:0;padding:0;list-style:none;display:grid}.entry ul.points li{text-wrap:pretty;padding-left:18px;position:relative}.entry ul.points li:before{content:"";background:var(--muted);width:8px;height:1.5px;position:absolute;top:.72em;left:0}.skills-label{font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:22px 0 10px}.skills{flex-wrap:wrap;gap:8px;display:flex}.skill{font:400 12.5px/1 var(--font-mono);border:1px solid var(--rule);background:var(--surface);border-radius:7px;align-items:center;gap:6px;padding:7px 10px;display:inline-flex}.skill .ico{width:12.5px;height:12.5px;color:var(--muted);flex:none;transition:color .2s}.skill:hover .ico{color:var(--ink)}.project .skill{border-color:color-mix(in srgb, var(--indigo) 30%, var(--rule))}.extra{border:1px solid var(--rule);background:var(--surface);border-radius:14px;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px 22px;padding:14px 18px;display:flex}.extra a{font:500 13.5px/1.3 var(--font-mono);color:var(--indigo);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.extra a:hover{text-underline-offset:3px;text-decoration:underline}.extra .stat{flex-direction:column;gap:2px;display:inline-flex}.extra .stat[data-tip]{gap:8px}.extra .stat b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1}.extra .stat span{font:400 11px/1.2 var(--font-mono);color:var(--muted)}.extra .divider{background:var(--rule);align-self:stretch;width:1px}.extra .soon{color:var(--muted);cursor:default}.extra .note{font:400 12px/1.4 var(--font-mono);color:var(--muted)}.entry.compact .entry-grid{grid-template-columns:minmax(0,1fr)}.entry.compact h2{font-size:22px}.entry.compact .sub{margin-bottom:6px}.entry.compact p{color:var(--muted);max-width:62ch;margin:0}.shot{aspect-ratio:4/5;border:1.5px solid var(--ink);background:var(--surface);border-radius:18px;place-items:center;max-width:100%;padding:16px 16px 34px;display:grid;position:relative;overflow:hidden}.shot.photo{aspect-ratio:auto;background:var(--paper);padding:0;display:block}.shot.photo img{width:100%;height:auto;display:block}.shot.photo.tall{justify-self:center}.shot.photo.tall img{object-fit:contain;width:auto;max-width:100%;height:520px}.shot .cap{font:400 10.5px/1.3 var(--font-mono);color:var(--muted);position:absolute;bottom:10px;left:10px;right:10px}.ruler.playing .dot{transition:opacity .18s,background .18s,transform .18s}.stat[data-tip] b{text-decoration:underline dotted color-mix(in srgb, var(--muted) 60%, transparent);text-underline-offset:3px;text-decoration-thickness:1.5px}.flight{pointer-events:none;height:250px;margin:-36px 0 40px;position:relative}.flight .wave{position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 0,#0000 0);mask-image:linear-gradient(90deg,#000 0,#0000 0)}.flight .wave canvas{width:100%;height:100%;position:absolute;inset:0}.flight .wave-wash{opacity:var(--wash-depth,.85)}.flight svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.route .track{fill:none;stroke:var(--muted);stroke-width:1.3px;stroke-dasharray:1 7;stroke-linecap:round;opacity:.7}.route .trail{fill:none;stroke:var(--brush);stroke-width:2.4px;stroke-linecap:round}.route .end{fill:var(--paper);stroke:var(--ink);stroke-width:1.6px}.route .lbl{font:500 11px/1 var(--font-mono);fill:var(--muted);letter-spacing:.06em;text-transform:uppercase}.route .yr{font:700 15px/1 var(--font-display);fill:var(--ink);letter-spacing:0;text-transform:none}.route .plane{fill:var(--surface);stroke:var(--ink);stroke-width:1.3px;stroke-linejoin:round}.ruler .fly{z-index:1;border-radius:4px;place-items:center;width:20px;height:16px;display:grid;position:absolute;top:0;transform:translate(-50%)}.ruler .fly svg{width:20px;height:16px;fill:var(--paper);stroke:var(--muted);stroke-width:2.6px;stroke-linejoin:round;transform:rotate(-12deg)}.ruler .fly:hover svg,.ruler .fly:focus-visible svg{stroke:var(--indigo)}.ink{pointer-events:none;display:block;position:absolute}.portrait{isolation:isolate;position:relative}.portrait img{z-index:1;position:relative}.portrait .wash{z-index:0;width:calc(100% + 100px);height:calc(100% + 90px);top:-26px;left:-40px}.portrait .enso{z-index:0;width:calc(100% + 132px);height:calc(100% + 120px);top:-60px;left:-66px}.name-ink{isolation:isolate;display:inline-block;position:relative}.name-ink .ink{z-index:-1;opacity:.3;width:calc(100% + 24px);height:.5em;bottom:-.1em;left:-10px;right:-14px}.splat{opacity:.45;z-index:1}.wash{opacity:.7;transition:opacity 1.2s,transform 1.6s cubic-bezier(.2,.7,.2,1)}.wash.wait{opacity:0;transform:scale(.94)}.shot-wrap{isolation:isolate;min-width:0;position:relative}.shot-wrap .shot{z-index:1;position:relative}.shot-wrap .shot.photo.tall{width:fit-content;margin-inline:auto!important}.place-wash{left:calc(var(--spine-x) - 140px);z-index:1;width:290px;height:300px;top:-36px}@media (prefers-reduced-motion:reduce){.wash,.wash.wait{opacity:.7;transition:none;transform:none}}.place-wash{opacity:.55}.tl-wrap,.hero{overflow-x:clip}.spine-drop{pointer-events:none;left:calc(var(--spine-x) - 40px);opacity:.85;width:80px;height:110px;transition:opacity .6s,filter .9s;position:absolute;bottom:26px}.spine-drop canvas{width:100%;height:100%;inset:0}.spine-drop .drop-fill{opacity:0;transition:opacity .7s}.spine-drop.filled{opacity:1;filter:drop-shadow(0 0 7px color-mix(in srgb, var(--indigo) 55%, transparent))}.spine-drop.filled .drop-fill{opacity:1}@media (prefers-reduced-motion:reduce){.spine-drop,.spine-drop .drop-fill{transition:none}}.spine-ink{top:0;left:calc(var(--spine-x) - 20px);pointer-events:none;z-index:0;width:40px;height:0;position:absolute;-webkit-mask-image:linear-gradient(#0000,#0000);mask-image:linear-gradient(#0000,#0000)}.ink-tip{top:-9px;left:calc(var(--spine-x) - 3.5px);pointer-events:none;z-index:0;opacity:0;will-change:transform;width:7px;height:9px;transition:opacity .3s;position:absolute}.ink-tip:before{content:"";background:var(--brush);transform:scaleY(var(--stretch,1));transform-origin:50% 100%;border-radius:50%/38% 38% 62% 62%;transition:transform .35s cubic-bezier(.2,.8,.3,1.4);position:absolute;inset:0}.entry .node{transition:background .35s,box-shadow .35s,border-color .35s}.entry.inked .node{background:var(--brush);border-color:var(--brush)}.entry.project.inked .node{background:var(--indigo);border-color:var(--indigo)}.entry.active .node{background:var(--ink);box-shadow:0 0 0 5px color-mix(in srgb, var(--ink) 12%, transparent)}.entry.project.active .node{background:var(--indigo);box-shadow:0 0 0 5px color-mix(in srgb, var(--indigo) 18%, transparent)}.entry.learning.active .node{border-style:solid}html[lang=ja] .entry ul.points li,html[lang=ja] .lede,html[lang=ja] .entry.compact p{line-height:1.8}.lang{align-items:center;gap:2px;display:inline-flex}.lang button{font:inherit;color:var(--muted);cursor:pointer;letter-spacing:inherit;background:0 0;border:0;border-radius:4px;padding:2px 4px}.lang button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--indigo);text-underline-offset:4px;text-decoration-thickness:2px}.lang button:hover{color:var(--indigo)}.name-kana{font:500 13px/1 var(--font-mono);letter-spacing:.12em;color:var(--muted);margin:-4px 0 12px;display:block}kbd{font:500 10.5px/1 var(--font-mono);border:1px solid var(--rule);background:var(--surface);color:var(--muted);border-bottom-width:2px;border-radius:5px;padding:3px 5px}.kbd-hint{border-radius:6px;align-items:center;gap:3px;padding:2px;display:inline-flex}@media (hover:none){.kbd-hint{display:none}}.cmdk-btn{border:1px solid var(--rule);background:var(--surface);height:34px;color:var(--ink);cursor:pointer;border-radius:99px;align-items:center;gap:6px;margin-left:6px;padding:0 8px 0 9px;display:inline-flex}.cmdk-btn svg{width:15px;height:15px}.cmdk-btn kbd{background:var(--paper);border:0;border-radius:99px;padding:4px 6px}.cmdk-btn:hover{border-color:var(--indigo);color:var(--indigo)}.cmdk-wrap{z-index:60;padding:max(10vh, calc(env(safe-area-inset-top,0px) + 16px)) max(16px, env(safe-area-inset-right,0px)) 16px max(16px, env(safe-area-inset-left,0px));background:color-mix(in srgb, var(--ink) 28%, transparent);-webkit-backdrop-filter:blur(3px);place-items:start center;animation:.16s cmdkFade;display:grid;position:fixed;inset:0}.cmdk{background:var(--surface);width:min(620px,100%);max-height:min(560px,80vh);color:var(--ink);border:1.5px solid var(--ink);border-radius:18px;grid-template-rows:auto minmax(0,1fr) auto;animation:.2s cubic-bezier(.3,1.2,.4,1) cmdkIn;display:grid;overflow:hidden;box-shadow:0 30px 80px -30px #0000008c}@keyframes cmdkFade{0%{opacity:0}}@keyframes cmdkIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}}.cmdk-search{border-bottom:1px solid var(--rule);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmdk-search svg{width:18px;height:18px;color:var(--muted);flex:none}.cmdk-search input{min-width:0;color:var(--ink);font:400 17px/1.3 var(--font-body);background:0 0;border:0;outline:0;flex:1}.cmdk-search input::placeholder{color:var(--muted)}.cmdk-list{overscroll-behavior:contain;margin:0;padding:6px;list-style:none;overflow-y:auto}.cmdk-group{font:500 10.5px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 10px 6px}.cmdk-item{cursor:pointer;border-radius:10px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;display:grid;position:relative}.cmdk-item[aria-selected=true]{background:var(--indigo-soft)}.cmdk-item[aria-selected=true]:before{content:"";background:var(--brush);border-radius:3px;width:3px;position:absolute;top:9px;bottom:9px;left:0}.cmdk-item .ic{color:var(--muted);place-items:center;display:grid}.cmdk-item .ic i{background:var(--ink);border-radius:50%;width:10px;height:10px}.cmdk-item .ic i.project{background:var(--indigo);border-radius:2px;transform:rotate(45deg)}.cmdk-item .ic i.learning{border:1.5px dashed var(--ink);background:0 0}.cmdk-item .ic svg{width:16px;height:16px}.cmdk-item .lb{font:500 14.5px/1.3 var(--font-body);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cmdk-item .lb mark{color:var(--indigo);background:0 0;font-weight:700}.cmdk-item .sb{font:400 11.5px/1.2 var(--font-mono);color:var(--muted);white-space:nowrap}.cmdk-empty{text-align:center;color:var(--muted);font:400 14px/1.5 var(--font-body);padding:28px 16px}.cmdk-foot{border-top:1px solid var(--rule);font:400 11.5px/1 var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:14px;padding:10px 16px;display:flex}.cmdk-foot span{align-items:center;gap:6px;display:inline-flex}@media (width<=720px){.cmdk-btn kbd{display:none}.cmdk-btn{justify-content:center;width:34px;padding:0}.cmdk-item{grid-template-columns:22px minmax(0,1fr);row-gap:2px}.cmdk-item .sb{text-overflow:ellipsis;grid-column:2;overflow:hidden}}@media (width<=480px){.socials{gap:4px}.socials a{width:30px;height:30px}.socials svg{width:16px;height:16px}.links a{padding:6px 3px;font-size:12px}.cmdk-btn{width:32px;height:32px;margin-left:2px}}@media (prefers-reduced-motion:reduce){.cmdk-wrap,.cmdk{animation:none}}.contact{padding-block:8px 72px}.cta{border:1.5px solid var(--ink);background:var(--surface);isolation:isolate;max-width:900px;scroll-margin-top:calc(var(--nav-h) + 110px);border-radius:26px;margin:0 auto;padding:clamp(24px,5vw,48px);position:relative;overflow:hidden}.cta .ink{opacity:.55;z-index:-1;width:300px;height:300px;top:-40px;right:-60px}.cta h2{font-family:var(--font-display);text-wrap:balance;max-width:16ch;margin:16px 0 10px;font-size:clamp(28px,3.6vw,38px);font-weight:700;line-height:1.15}.cta p{max-width:36em;color:var(--muted);text-wrap:pretty;margin:0 0 22px}.cta-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cta-btn{font:500 13.5px/1 var(--font-mono);border:1px solid var(--rule);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:11px;align-items:center;gap:8px;padding:12px 15px;text-decoration:none;display:inline-flex}.cta-btn:hover{border-color:var(--ink)}.cta-btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.cta-btn svg{width:14px;height:14px}.cta-copied{font:400 12.5px/1.3 var(--font-mono);color:var(--indigo)}@media (width<=980px){:root{--spine-x:100px;--content-x:240px}.entry-grid{grid-template-columns:minmax(0,1fr)}.shot{aspect-ratio:16/11;max-width:520px}}@media (width<=720px){:root{--spine-x:8px;--content-x:34px;--nav-h:58px}.socials a{width:34px;height:34px}.links{font-size:13px}.links a{padding:6px}.links .sep{display:none}.hero{padding-block:44px 28px}.hero .wrap{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"hello hello""name photo""kana kana""lede lede";align-items:center;gap:0 14px}.hero .wrap>div:first-child{display:contents}.hello{grid-area:hello}.hero h1{grid-area:name;margin:34px 0 22px}.name-kana{grid-area:kana}.lede{grid-area:lede}.hero .name-ink{width:min-content}.portrait{grid-area:photo;width:clamp(48px,80.8407vw - 246.564px,100px);margin:14px 16px 0 0}.portrait img{aspect-ratio:1;object-position:74% 40%;border-radius:50%}.portrait .enso{width:146%;height:146%;top:-23%;left:-23%}.portrait .wash{width:152%;height:139%;top:-4%;left:-24%}.legend{display:none}.timeline{padding-block:36px 100px}.era{min-height:0}.place{margin-left:var(--content-x);border-radius:14px;flex-direction:row;align-items:center;gap:14px;width:auto;height:auto;margin-bottom:36px;padding:10px;display:flex;position:relative;top:auto;left:auto}.place .map{border:1px solid var(--rule);border-radius:9px;flex:none;width:92px;height:92px;position:static}.place .map text,.place .glyph,.place-wash{display:none}.place .meta{border:0;flex:1;min-width:0;padding:0;position:static}.entry.first .node{display:block}.readout-cloth{translate:0 5px}.readout-dye{inset-block:-5px}.node-date,.entry.project .node-date{left:calc(var(--spine-x) - var(--content-x));background:var(--paper);z-index:1;padding:2px 1px;font-size:10px;top:-13px;transform:translate(-50%)}.entry.first .node-date{display:block}.node-date .full{display:none}.node-date .short{display:inline}.entries{gap:80px}.shot{aspect-ratio:1}}@media (width<=420px){.socials{gap:6px}.socials a{width:32px;height:32px}.theme-btn{display:none}}@media (width<=380px){.hero h1{font-size:36px}.portrait{width:clamp(48px,80.8407vw - 227.971px,100px)}.socials{gap:3px}.socials a{width:29px;height:29px}.socials svg{width:15px;height:15px}}@media (width<=340px){.hero h1{font-size:32px}.socials a[aria-label="Resume (PDF)"]{display:none}.links a{padding:6px 2px}}@media (width<=560px){.kind{--cap:14px;--cap-gap:6px;padding-right:7px}}@media (width<=380px){.kind{--cap:11px;--cap-gap:5px;letter-spacing:.05em}}@media (width<=560px){.entry-head:before{inset:-26px -18px -16px -14px}}.stuck .ruler .dot:not(.lit,:hover){opacity:.75}@media (prefers-reduced-motion:reduce){.nav,.ruler-bar,.ruler .track,.ruler .track:after,.readout-cloth,.readout-dye,.node-date{transition:none}}.kk{border:1.5px solid var(--ink);background:var(--surface);border-radius:22px;gap:10px;max-width:100%;padding:14px;display:grid;position:relative}.kk-top{font:500 10.5px/1 var(--font-mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;display:flex}.kk-live{color:var(--indigo);align-items:center;gap:6px;display:inline-flex}.kk-live i{background:var(--indigo);border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite kkBlink}@keyframes kkBlink{50%{opacity:.25}}.kk-picker{scrollbar-width:thin;padding-bottom:4px;gap:4px;margin-inline:-2px;padding-inline:2px 24px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.kk-picker button{border:1px solid var(--rule);background:var(--paper);width:30px;height:30px;color:var(--ink);font:700 16px/1 var(--font-display);cursor:pointer;border-radius:8px;flex:none;place-items:center;transition:background .15s,border-color .15s,color .15s;display:grid}.kk-picker button:hover{border-color:var(--indigo)}.kk-picker button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.kk-picker button.done:after{content:"";position:absolute}.kk-picker button.done{box-shadow:inset 0 -2px 0 var(--indigo)}.kk-prompt{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.kk-meaning{font:700 20px/1.1 var(--font-display)}.kk-reading{font:400 12px/1.2 var(--font-mono);color:var(--muted);margin-left:6px}.kk-count{font:500 11.5px/1 var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.kk-pad{aspect-ratio:1;border:1px solid var(--rule);background:var(--paper);touch-action:none;cursor:crosshair;border-radius:14px;width:100%;transition:border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.kk-pad>svg.kk-grid{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.kk-grid line{stroke:var(--rule);stroke-width:1px}.kk-grid .d{stroke-dasharray:4 5}.kk-pad .kk-writer{position:absolute;inset:0}.kk-pad.miss{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb, var(--bad) 18%, transparent)}.kk-pad.win{border-color:var(--indigo);box-shadow:0 0 0 3px color-mix(in srgb, var(--indigo) 18%, transparent)}.kk-fallback{text-align:center;font:400 13px/1.5 var(--font-body);color:var(--muted);place-items:center;padding:18px;display:grid;position:absolute;inset:0}.kk-msg{min-height:1.5em;font:500 13.5px/1.5 var(--font-body);margin:0}.kk-msg.bad{color:var(--bad)}.kk-msg.good{color:var(--indigo)}.kk-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.kk-btn{font:500 12px/1 var(--font-mono);border:1px solid var(--rule);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;display:inline-flex}.kk-btn:hover{border-color:var(--ink)}.kk-btn[aria-pressed=true]{background:var(--indigo-soft);color:var(--indigo);border-color:#0000}.kk-btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.kk-btn svg{width:12px;height:12px}.kk-tol{font:400 11px/1 var(--font-mono);color:var(--muted);align-items:center;gap:6px;margin-left:auto;display:inline-flex}.kk-tol select{font:500 12px/1 var(--font-mono);border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:8px;padding:6px}.kk-story{border-top:1px dashed var(--rule);font:400 13.5px/1.55 var(--font-body);color:var(--muted);text-wrap:pretty;margin:0;padding-top:10px}.kk-story b{color:var(--ink);font-weight:600}.kk-story .prim{color:var(--indigo);text-underline-offset:3px;text-decoration:underline dotted}.kk-credit{font:400 10px/1.4 var(--font-mono);color:var(--muted);opacity:.8}@media (prefers-reduced-motion:reduce){.kk-live i{animation:none}}@media (width<=980px){.kk{max-width:520px}}.rw{border:1.5px solid var(--ink);background:var(--surface);border-radius:22px;gap:12px;max-width:100%;padding:14px;display:grid;position:relative}.rw-top{font:500 10.5px/1 var(--font-mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;display:flex}.rw-cart{border:1px solid var(--rule);width:30px;height:30px;color:var(--ink);background:var(--paper);border-radius:8px;place-items:center;display:inline-grid;position:relative}.rw-cart svg{width:16px;height:16px}.rw-cart b{background:var(--indigo);min-width:17px;height:17px;color:var(--surface);font:600 10px/17px var(--font-mono);text-align:center;border-radius:9px;padding:0 4px;position:absolute;top:-6px;right:-6px}.rw-cart b.bump{animation:.45s cubic-bezier(.3,1.6,.5,1) rwBump}@keyframes rwBump{40%{transform:scale(1.45)}}.rw-title{font:700 19px/1.2 var(--font-display);margin:0}.rw-pill{font:500 11.5px/1 var(--font-mono);background:var(--indigo-soft);color:var(--indigo);border-radius:99px;justify-self:start;padding:6px 9px;transition:background .3s,color .3s}.rw-pill.full{background:var(--indigo);color:var(--surface)}.rw-chips{flex-wrap:wrap;gap:5px;display:flex}.rw-chips button{font:500 11.5px/1 var(--font-mono);border:1px solid var(--rule);background:var(--paper);color:var(--muted);cursor:pointer;border-radius:99px;padding:6px 9px}.rw-chips button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.rw-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.rw-card{border:1.5px solid var(--rule);background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;font:inherit;border-radius:12px;gap:4px;padding:6px 6px 8px;transition:border-color .2s,transform .2s,opacity .2s;animation:.3s both rwIn;display:grid;position:relative}@keyframes rwIn{0%{opacity:0;transform:translateY(4px)}}.rw-card:hover:not(:disabled){border-color:var(--muted);transform:translateY(-2px)}.rw-card[aria-pressed=true]{border-color:var(--ink)}.rw-card:disabled{opacity:.45;cursor:not-allowed}.rw-card .nm{font:600 11.5px/1.25 var(--font-body);min-height:2.5em}.rw-card .pr{font:400 11px/1 var(--font-mono);color:var(--muted)}.rw-card .chk{background:var(--ink);width:18px;height:18px;color:var(--paper);border-radius:50%;place-items:center;transition:transform .25s cubic-bezier(.3,1.6,.5,1);display:grid;position:absolute;top:4px;right:4px;transform:scale(0)}.rw-card[aria-pressed=true] .chk{transform:scale(1)}.rw-card .chk svg{width:10px;height:10px}.art{aspect-ratio:1;border-radius:8px;width:100%;display:block}.art .t{fill:color-mix(in srgb, var(--c) 20%, var(--surface))}.art .f{fill:var(--c);stroke:var(--ink);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.art .l{fill:none;stroke:var(--ink);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.art .w{fill:var(--surface);stroke:var(--ink);stroke-width:1.2px}.rw-tray{background:var(--paper);border:1px dashed var(--rule);border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:8px;display:grid}.rw-slot{aspect-ratio:1;border:1.5px dashed var(--rule);font:500 11px/1 var(--font-mono);color:var(--muted);border-radius:10px;place-items:center;display:grid;position:relative}.rw-slot.on{border-style:solid;border-color:var(--ink)}.rw-slot .art{width:calc(100% - 6px);position:absolute;inset:3px}.rw-slot .x{border:1px solid var(--rule);background:var(--surface);width:20px;height:20px;color:var(--ink);cursor:pointer;z-index:1;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-7px;right:-7px}.rw-slot .x svg{width:9px;height:9px}.rw-switch{font:500 12.5px/1.35 var(--font-body);cursor:pointer;align-items:center;gap:10px;display:flex}.rw-switch small{font:400 11px/1.3 var(--font-mono);color:var(--muted);display:block}.rw-switch button{background:var(--rule);cursor:pointer;border:0;border-radius:11px;flex:none;width:36px;height:21px;padding:0;transition:background .2s;position:relative}.rw-switch button:after{content:"";background:var(--surface);border-radius:50%;width:15px;height:15px;transition:transform .22s cubic-bezier(.3,1.4,.5,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.rw-switch button[aria-checked=true]{background:var(--indigo)}.rw-switch button[aria-checked=true]:after{transform:translate(15px)}.rw-total{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.rw-total .now{font:700 22px/1 var(--font-display);font-variant-numeric:tabular-nums}.rw-total s{font:400 12px/1 var(--font-mono);color:var(--muted);margin-left:6px}.rw-total .save{font:500 11.5px/1 var(--font-mono);color:var(--indigo)}.rw-cta{background:var(--ink);width:100%;color:var(--paper);font:600 13px/1 var(--font-mono);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px;transition:opacity .2s,transform .1s;display:flex}.rw-cta:active:not(:disabled){transform:scale(.98)}.rw-cta:disabled{opacity:.4;cursor:not-allowed}.rw-cta .spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite rwSpin}@keyframes rwSpin{to{transform:rotate(360deg)}}.rw-note{font:400 10px/1.4 var(--font-mono);color:var(--muted);opacity:.85}.rw-fly{z-index:40;pointer-events:none;border-radius:8px;position:fixed;overflow:hidden}.rw-lines{gap:8px;margin:0;padding:0;list-style:none;display:grid}.rw-line{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;animation:.3s both rwIn;display:grid}.rw-line .nm{font:600 12.5px/1.25 var(--font-body)}.rw-line .meta{font:400 11px/1.3 var(--font-mono);color:var(--muted)}.rw-line .meta s{margin-right:4px}.rw-line .badge{font:600 9.5px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:var(--indigo);color:var(--surface);vertical-align:1px;border-radius:5px;margin-left:6px;padding:3px 6px}.rw-step{border:1px solid var(--rule);background:var(--paper);border-radius:9px;align-items:center;display:inline-flex}.rw-step button{width:26px;height:26px;color:var(--ink);font:600 14px/1 var(--font-mono);cursor:pointer;background:0 0;border:0;border-radius:8px}.rw-step button:disabled{opacity:.3;cursor:not-allowed}.rw-step output{text-align:center;min-width:18px;font:500 12px/1 var(--font-mono);font-variant-numeric:tabular-nums}.rw-prog{gap:7px;display:grid}.rw-prog p{font:500 12.5px/1.35 var(--font-body);margin:0}.rw-bar{background:var(--paper);border:1px solid var(--rule);border-radius:99px;height:8px;margin:4px 8px 16px 0;position:relative}.rw-bar .fill{background:var(--indigo);border-radius:99px;transition:width .6s cubic-bezier(.3,1.2,.4,1);position:absolute;inset:0 auto 0 0}.rw-bar .ms{background:var(--surface);border:1.5px solid var(--rule);border-radius:50%;place-items:center;width:18px;height:18px;margin:-9px 0 0 -9px;transition:background .3s,border-color .3s;display:grid;position:absolute;top:50%}.rw-bar .ms svg{width:10px;height:10px;stroke:var(--muted);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.rw-bar .ms.hit{background:var(--indigo);border-color:var(--indigo)}.rw-bar .ms.hit svg{stroke:var(--surface)}.rw-bar .ms span{font:500 10px/1 var(--font-mono);color:var(--muted);white-space:nowrap;position:absolute;top:20px}.rw-gifts{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0;padding:0;display:grid}.rw-gifts legend{font:500 10.5px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;padding:0}.rw-gift{border:1.5px solid var(--rule);background:var(--paper);cursor:pointer;border-radius:12px;gap:3px;padding:6px 6px 8px;transition:border-color .2s,opacity .2s;display:grid;position:relative}.rw-gift input{opacity:0;pointer-events:none;position:absolute}.rw-gift:has(input:checked){border-color:var(--indigo);box-shadow:0 0 0 3px color-mix(in srgb, var(--indigo) 16%, transparent)}.rw-gift:has(input:focus-visible){outline:2px solid var(--indigo);outline-offset:2px}.rw-gift:has(input:disabled){opacity:.45;cursor:not-allowed}.rw-gift .nm{font:600 11.5px/1.25 var(--font-body)}.rw-gift .pr{font:400 10.5px/1.2 var(--font-mono);color:var(--muted)}.rw-gift .lock{background:var(--surface);border:1px solid var(--rule);border-radius:50%;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:5px;right:5px}.rw-gift .lock svg{width:9px;height:9px;stroke:var(--muted);fill:none;stroke-width:2.2px}.rw-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.rw-card,.rw-line{animation:none}.rw-bar .fill{transition:none}}@media (width<=980px){.rw{max-width:520px}}@media (width<=560px){.rw-prog p{min-height:2.7em}}
