@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:200;font-display:swap;src:url(/_astro/ibm-plex-sans-vietnamese-200-normal.CwngTzSU.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:200;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-ext-200-normal.BDZwQhj3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:200;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-200-normal.D9uRRqyL.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_astro/ibm-plex-sans-vietnamese-300-normal.SDfX6ktj.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-ext-300-normal.BLFuR0P1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-300-normal.b4i7YzLG.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:200;font-display:swap;src:url(/_astro/ibm-plex-mono-latin-200-normal.Cj_OANUP.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_astro/ibm-plex-mono-latin-300-normal.BRS-C4KA.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-serif-vietnamese-400-normal.DGubAMUE.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-ext-400-normal.CNMooFZX.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-400-normal.BIGslYFI.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-serif-vietnamese-400-italic.BSp0Db6W.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:300;font-display:swap;src:url(/_astro/ibm-plex-serif-vietnamese-300-italic.DPIyKHLL.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-ext-400-italic.hOoDEQwh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:300;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-ext-300-italic.C6YMxmCw.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-400-italic.BCf4TsCA.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:300;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-300-italic.BNh9FUye.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/ibm-plex-serif-vietnamese-600-normal.BBruYZNA.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-ext-600-normal.CU6LeQOd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/ibm-plex-serif-latin-600-normal.DAxitmSu.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/silkscreen-latin-400-normal.CtPo2yA5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--pp-paper:#ece5d6;--pp-card:#f6f1e5;--pp-ink:#2e2a26;--pp-ink-2:#6b635a;--pp-blue:#8b9cad;--pp-ochre:#d9a94c;--pp-sage:#7e8c7a;--pp-clay:#c97b5a;--grain:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22220%22%20height%3D%22220%22%3E%3Cfilter%20id%3D%22g%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.9%22%20numOctaves%3D%224%22%20stitchTiles%3D%22stitch%22%2F%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22220%22%20height%3D%22220%22%20filter%3D%22url%28%23g%29%22%20opacity%3D%220.55%22%2F%3E%3C%2Fsvg%3E)}.sprite{width:0;height:0;position:absolute;overflow:hidden}.ic{fill:currentColor;flex:none;width:1em;height:1em}.p-lab main{padding:0;display:flex}.p-lab .foot{display:none}.p-lab{background:var(--pp-paper);color:var(--pp-ink)}.p-lab .nav a{color:var(--pp-ink)}.p-lab .mark b{color:var(--pp-clay)}.editor{display:none}.fallback{padding:0 var(--pad)}@media (width<=899px){.p-lab main{display:block}.fallback+.fallback{margin-top:clamp(4rem,12vw,8rem)}}@media (width>=900px){.editor{touch-action:none;cursor:grab;background: radial-gradient(60% 40% at 12% 18%, color-mix(in srgb, var(--pp-blue) 30%, transparent), transparent 70%), radial-gradient(45% 35% at 88% 12%, color-mix(in srgb, var(--pp-ochre) 26%, transparent), transparent 70%), radial-gradient(50% 45% at 78% 88%, color-mix(in srgb, var(--pp-clay) 20%, transparent), transparent 70%), radial-gradient(55% 40% at 22% 86%, color-mix(in srgb, var(--pp-sage) 22%, transparent), transparent 70%), var(--pp-paper);flex:1;display:block;position:relative;overflow:hidden}.editor[hidden]{display:none}.editor.is-panning{cursor:grabbing}html.has-js .fallback,body.has-editor .fallback{display:none}.editor{-webkit-user-select:none;user-select:none}}.editor:after{content:"";pointer-events:none;opacity:.42;mix-blend-mode:multiply;background-image:var(--grain);background-size:220px 220px;position:absolute;inset:0}.world{transform-origin:0 0;position:absolute;inset:0}.world.is-easing{transition:transform .42s cubic-bezier(.22,.61,.36,1)}.nodes{pointer-events:none;position:absolute;inset:0}.nodes>.nd{pointer-events:auto}.wires{pointer-events:none;width:1px;height:1px;position:absolute;overflow:visible}.wires path{fill:none}[data-wirelayer]{filter:url(#wobble)}.wire__line{stroke:var(--pp-ink);stroke-width:2.1px;stroke-linecap:round}.wire__hit{stroke:#0000;stroke-width:16px;pointer-events:stroke;cursor:pointer}.wire:hover .wire__line{stroke:var(--pp-clay);stroke-width:3px}.wire--pending{stroke:var(--pp-ink);stroke-width:2.1px;stroke-dasharray:6 5;opacity:.7}.marquee{fill:color-mix(in srgb, var(--pp-clay) 12%, transparent);stroke:var(--pp-clay);stroke-width:1.5px;stroke-dasharray:5 4;visibility:hidden}.marquee.is-on{visibility:visible}.nd{width:168px;min-height:58px;color:var(--pp-ink);cursor:grab;user-select:none;will-change:transform;background:0 0;border:0;align-items:center;gap:.6rem;padding:.55rem .9rem;display:flex;position:absolute;top:0;left:0}.nd>:not(.nd__paper){position:relative}.nd__paper{background:var(--pp-card);filter:var(--torn) drop-shadow(1px 3px 3px #3c302247);position:absolute;inset:-7px -3px}.nd:hover .nd__paper{background:#fbf7ee}.nd.is-selected .nd__paper,.nd.is-target .nd__paper{filter:var(--torn) drop-shadow(0 0 2px var(--pp-clay)) drop-shadow(0 0 5px var(--pp-clay)) drop-shadow(1px 3px 3px #3c30224d);background:#fff9ec}.nd{--torn:url(#torn0)}.nd:focus{outline:none}.nd:focus-visible{outline:1px solid var(--pp-clay);outline-offset:6px}.nd[data-seed="1"]{--torn:url(#torn1)}.nd[data-seed="2"]{--torn:url(#torn2)}.nd[data-seed="3"]{--torn:url(#torn3)}.nd .ic{color:var(--pp-ink);font-size:1.15rem}.nd--op .ic{color:var(--pp-clay)}.nd__emoji{flex:none;font-size:1.5rem;line-height:1}.nd__label{letter-spacing:-.005em;font-size:.95rem;line-height:1.15}.nd__label em{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--pp-ink-2);margin-top:2px;font-size:.58rem;font-style:normal;display:block}.nd--op{background:0 0;flex-direction:column;align-items:center;gap:.3rem;width:auto;min-height:0;padding:0}.nd--op .nd__frame--op{align-items:center;gap:.28rem;line-height:0;display:flex}.nd__side{flex-direction:column;gap:.18rem;margin:0;padding:0;list-style:none;display:flex;position:relative}.nd__side--in{align-items:flex-end}.nd__side--out{align-items:flex-start}.nd__side li{color:var(--pp-ink-2);white-space:nowrap;align-items:center;gap:.3rem;line-height:1.35;display:flex}.nd__side:before{content:"";z-index:-1;background:var(--pp-card);filter:var(--torn) drop-shadow(1px 2px 2px #3c302233);position:absolute;inset:-3px -7px}.nd--op .nd__frame--op .port{margin:0;position:relative;top:auto;left:auto;right:auto}.nd--op .nd__side--in .port{margin-left:-13px}.nd--op .nd__side--out .port{margin-right:-13px}.port{background:var(--pp-blue);cursor:crosshair;border-radius:50%;flex:none;width:13px;height:13px;margin-top:-6.5px;position:absolute;top:50%;box-shadow:inset 0 -2px 2px #00000029}.port--in{background:var(--pp-ochre);left:-7px}.port--out{right:-7px}.nd>.port{position:absolute}.port:before{content:"";position:absolute;inset:-9px}.port:hover{background:var(--pp-clay);transform:scale(1.15)}.nd--panel,.nd--explain{flex-direction:column;align-items:stretch;gap:.4rem;min-height:0;padding:.8rem 1rem .9rem}.nd--panel{width:318px}.nd--explain{width:340px}.np__title,.nr__line{text-wrap:balance;overflow-wrap:break-word;line-height:1.24}.np__body,.nr__note,.nx span{text-wrap:pretty;overflow-wrap:break-word}.nd--panel .nd__paper{background:#fdfaf1;inset:-8px -4px}.np__title{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pp-clay);font-size:.66rem}.np__body{color:var(--pp-ink);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--pp-ink) 22%, transparent) transparent;max-height:232px;font-size:.86rem;line-height:1.58;overflow:hidden auto}.nd--panel.is-empty .np__title{color:var(--pp-ink-2)}.nd--human{background:0 0;flex-direction:row;align-items:center;gap:.1rem;width:auto;min-height:0;padding:0}.nd--human .nd__paper{display:none}.nd--human .nd__frame{flex:none}.nr__bubble{width:252px;margin-left:2.15rem;padding:.62rem .8rem .68rem;position:relative}.nr__bubble:before{content:"";z-index:-1;background:color-mix(in srgb, var(--pp-card) 96%, transparent);filter:var(--torn) drop-shadow(2px 3px 3px #3c302233);border-radius:16px;position:absolute;inset:-6px -9px}.nr__bubble:after{content:"";background:color-mix(in srgb, var(--pp-card) 96%, transparent);width:10px;height:10px;box-shadow:-11px 8px 0 -3px color-mix(in srgb, var(--pp-card) 96%, transparent);filter:drop-shadow(1px 2px 2px #3c302238);border-radius:50%;position:absolute;bottom:15px;left:-21px}.nr__line{letter-spacing:-.01em;min-width:0;font-weight:400;display:block}.nr__note{color:var(--pp-ink-2);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--pp-ink) 22%, transparent) transparent;max-height:200px;font-size:.79rem;line-height:1.55;display:block;overflow:hidden auto}.toolbar{z-index:3;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--pp-ink) 26%, transparent) transparent;background:color-mix(in srgb, var(--pp-card) 94%, transparent);border:1px solid color-mix(in srgb, var(--pp-ink) 22%, transparent);cursor:default;width:268px;max-height:calc(100% - 2.5rem);padding:.9rem 1rem 1rem;position:absolute;top:1.25rem;left:1.25rem;overflow:hidden auto;box-shadow:2px 4px 10px #3c302229}.toolbar header{justify-content:space-between;align-items:center;margin-bottom:.9rem;display:flex}.toolbar__acts{gap:.3rem;display:flex}.toolbar__t,.toolbar__g{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pp-ink-2);margin:0 0 .5rem;font-size:.66rem}.toolbar__t{color:var(--pp-ink);margin:0}.toolbar__row{flex-wrap:wrap;gap:.35rem;display:flex}.toolbar button{font:inherit;color:var(--pp-ink);border:1px solid color-mix(in srgb, var(--pp-ink) 20%, transparent);cursor:pointer;background:#ffffff73;align-items:center;gap:.35rem;padding:.3rem .5rem;font-size:.8rem;display:flex}.toolbar button:hover{border-color:var(--pp-clay);color:var(--pp-clay)}.toolbar__acts button{color:var(--pp-ink-2);padding:.3rem}.toolbar__acts [aria-pressed=true]{color:var(--pp-clay);border-color:var(--pp-clay)}.toolbar button[data-add]{cursor:grab;touch-action:none}.hint{pointer-events:none;width:max-content;max-width:320px;font-family:var(--hand);color:var(--pp-clay);white-space:pre-line;align-items:flex-start;gap:.15rem;font-size:1.1rem;line-height:1.2;display:flex;position:absolute;top:0;left:0;rotate:-4deg}.hint__arrow{fill:none;width:92px;height:62px;stroke:var(--pp-clay);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;filter:url(#wobble);flex:none;margin-top:-.5rem}.hint--back{flex-direction:row-reverse}.hint--back .hint__arrow{scale:-1 1}.howto-note{pointer-events:none;width:300px;font-family:var(--hand);color:var(--pp-ink-2);font-size:1.05rem;line-height:1.25;position:absolute;top:0;left:0;rotate:-1.5deg}.howto-note[hidden]{display:none}.howto-note__h{color:var(--pp-clay);margin:0 0 .35rem;font-size:1.2rem}.howto-note ol{gap:.35rem;margin:0;padding-left:1.3rem;display:grid}.howto-note b{color:var(--pp-ink);text-decoration:underline;text-decoration-color:var(--pp-clay);text-underline-offset:.15em;font-weight:400}.nodeinfo{z-index:4;pointer-events:none;background:var(--pp-card);border:1px solid color-mix(in srgb, var(--pp-ink) 22%, transparent);width:300px;color:var(--pp-ink);padding:.85rem 1rem .9rem;font-size:.85rem;line-height:1.45;position:absolute;box-shadow:2px 4px 10px #3c302229}.nodeinfo[hidden]{display:none}.nodeinfo p{margin:0}.ni__name{font-family:var(--hand);font-size:1.3rem;line-height:1.1;margin-bottom:.35rem!important}.ni__what{color:var(--pp-ink-2)}.ni__ports{font:.7rem/1.4 var(--mono);letter-spacing:.02em;color:var(--pp-ink-2);margin-top:.5rem!important}.ni__use{border-top:1px dashed color-mix(in srgb, var(--pp-ink) 25%, transparent);padding-top:.55rem;margin-top:.6rem!important}.ni__use b{color:var(--pp-clay);margin-right:.25em;font-weight:600}.alignbar{z-index:4;background:color-mix(in srgb, var(--pp-card) 96%, transparent);border:1px solid var(--pp-clay);cursor:default;align-items:center;gap:.9rem;padding:.45rem .8rem;display:flex;position:absolute;top:1.25rem;left:50%;transform:translate(-50%);box-shadow:2px 4px 10px #3c30222e}.alignbar[hidden]{display:none}.alignbar__n{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--pp-clay);font-size:.65rem}.alignbar__g{align-items:center;gap:.25rem;display:flex}.alignbar__g b{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--pp-ink-2);margin-right:.25rem;font-size:.61rem;font-weight:400}.alignbar button{color:var(--pp-ink-2);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:.28rem;font-size:1rem;display:grid}.alignbar button:hover{color:var(--pp-clay);border-color:color-mix(in srgb, var(--pp-ink) 20%, transparent)}body.is-spawning,body.is-spawning *{cursor:grabbing!important}.tb-ghost{z-index:20;color:var(--pp-ink);background:var(--pp-card);border:1px solid var(--pp-clay);pointer-events:none;transform-origin:50%;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.8rem;display:flex;position:fixed;top:0;left:0;rotate:-2deg;box-shadow:2px 4px 8px #3c302240}.tb-ghost .ic{fill:currentColor;width:1em;height:1em}.wire-menu{z-index:21;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--pp-ink) 26%, transparent) transparent;background:color-mix(in srgb, var(--pp-card) 96%, transparent);border:1px solid var(--pp-clay);flex-direction:column;gap:.15rem;width:220px;max-height:280px;padding:.35rem;display:flex;position:fixed;top:0;left:0;overflow-y:auto;box-shadow:2px 4px 10px #3c302238}.wire-menu button{width:100%;font:inherit;text-align:left;color:var(--pp-ink);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:.45rem;padding:.32rem .5rem;font-size:.8rem;display:flex}.wire-menu button:hover{color:var(--pp-clay);border-color:var(--pp-clay)}.wire-menu .ic{fill:currentColor;flex:none;width:1.1em;height:1.1em}.wire-menu .nd__emoji{flex:none}.wire-menu .wm__art{object-fit:contain;flex:none;width:22px;height:22px}.toolbar__sep{background:color-mix(in srgb, var(--pp-ink) 18%, transparent);align-self:stretch;width:1px;margin:0 .15rem}.editor.is-selecting{cursor:crosshair}.editor.is-selecting.is-panning{cursor:grabbing}.port.is-target{background:var(--pp-clay);box-shadow:0 0 0 5px color-mix(in srgb, var(--pp-clay) 35%, transparent)}.nd--tile{background:0 0;flex-direction:column;align-items:center;gap:.3rem;width:auto;min-height:0;padding:0}.nd--tile .nd__paper{display:none}.nd__frame{line-height:0;display:block;position:relative}.nd__art{object-fit:contain;user-select:none;-webkit-user-drag:none;width:116px;height:92px;display:block}.nd__frame .port{top:50%}.nd__frame .port--in{left:-8px}.nd__frame .port--out{right:-8px}.nd--tile .nd__label{text-align:center;padding:1px 2px;font-size:.9rem;position:relative}.nd--tile .nd__label em{text-align:center}.nd--tile .nd__label:before{content:"";z-index:-1;background:var(--pp-card);filter:var(--torn) drop-shadow(1px 2px 2px #3c302238);position:absolute;inset:-5px -12px}.nd__art,.nr__art{filter:drop-shadow(2px 4px 3px #3c302252)}.nd:hover .nd__art,.nd:hover .nr__art{filter:drop-shadow(2px 5px 4px #3c302266)}.nd.is-selected .nd__art,.nd.is-target .nd__art,.nd.is-selected .nr__art,.nd.is-target .nr__art{filter:drop-shadow(0 0 2px var(--pp-clay)) drop-shadow(0 0 6px var(--pp-clay)) drop-shadow(2px 4px 3px #3c302252)}.nd--op .nd__art{width:88px;height:74px}.nd--panel .nd__art{object-fit:contain;filter:drop-shadow(1px 2px 2px #3c30224d);width:38px;height:38px}.nr__art{object-fit:contain;user-select:none;-webkit-user-drag:none;filter:drop-shadow(1px 2px 2px #3c30224d);flex:none;width:104px;height:104px;display:block}.nd--panel .nd__paper,.nd--human .nd__paper{background:color-mix(in srgb, var(--pp-card) 96%, transparent)}.tb__art{object-fit:contain;flex:none;width:22px;height:22px}@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/patrick-hand-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/patrick-hand-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--hand:"Patrick Hand", "Segoe Print", cursive}.nd--tile .nd__label{font-family:var(--hand);letter-spacing:.01em;font-size:1.12rem}.nd__side li{font-family:var(--hand);letter-spacing:0;text-transform:none;font-size:.84rem}.nr__line{font-family:var(--hand);font-size:1.18rem}.np__title{font-family:var(--hand);letter-spacing:.02em;text-transform:none;font-size:.98rem}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.toolbar{width:240px;padding:.75rem .7rem .8rem}.toolbar header{flex-direction:column;align-items:stretch;gap:.5rem;margin-bottom:.7rem}.toolbar__t{letter-spacing:.14em;font-size:.6rem}.toolbar__acts{flex-wrap:wrap;justify-content:space-between}.toolbar__lang{gap:.22rem}.toolbar__lang b{font-family:var(--mono);letter-spacing:.08em;font-size:.58rem;font-weight:400}.toolbar__g{letter-spacing:.14em;margin-bottom:.35rem;font-size:.58rem}.toolbar section+section{margin-top:.7rem}.toolbar__row{grid-template-columns:repeat(2,1fr);gap:.25rem;display:grid}.toolbar__row button{justify-content:flex-start;gap:.32rem;min-width:0;padding:.28rem .35rem}.toolbar__row .tb__art{width:24px;height:24px}.toolbar__row .ic{font-size:1rem}.tb__label{font-family:var(--hand);text-align:left;font-size:.8rem;line-height:1.1}.toolbar__help{border-top:1px solid color-mix(in srgb, var(--pp-ink) 18%, transparent);margin-top:.8rem;padding-top:.6rem}.toolbar__help summary{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--pp-ink-2);cursor:pointer;font-size:.58rem;list-style:none}.toolbar__help summary:before{content:"＋ "}.toolbar__help[open] summary:before{content:"－ "}.toolbar__help dl{grid-template-columns:auto 1fr;gap:.25rem .5rem;margin:.6rem 0 0;font-size:.66rem;line-height:1.3;display:grid}.toolbar__help dt{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pp-clay);font-size:.56rem}.toolbar__help dd{color:var(--pp-ink-2);margin:0}.toolbar__help kbd{font-family:var(--mono);border:1px solid var(--rule);padding:0 .2em;font-size:.9em}.toolbar::-webkit-scrollbar{width:8px}.toolbar::-webkit-scrollbar-track{background:0 0}.toolbar::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--pp-ink) 24%, transparent);background-clip:content-box;border:2px solid #0000;border-radius:4px}.toolbar::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--pp-clay) 65%, transparent);background-clip:content-box}.toolbar__help dl{grid-template-columns:4.2rem 1fr}.toolbar__help dt{white-space:nowrap}.nd--explain .nd__paper{background:#f7f4ea;inset:-8px -4px}.nx,.np__spec{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--pp-ink) 22%, transparent) transparent;flex-direction:column;gap:.6rem;max-height:268px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden auto}.nx li,.np__spec li{flex-direction:column;gap:.12rem;display:flex}.nx li+li,.np__spec li+li{border-top:1px solid color-mix(in srgb, var(--pp-ink) 11%, transparent);padding-top:.6rem}.nx b,.np__spec b{font-family:var(--hand);color:var(--pp-ink);font-size:1.02rem;font-weight:400;line-height:1.2}.nx span,.np__spec span{color:var(--pp-ink-2);font-size:.79rem;line-height:1.52}.np__spec:empty{display:none}.np__spec{border-top:1px dashed color-mix(in srgb, var(--pp-ink) 20%, transparent);max-height:none;margin-top:.15rem;padding-top:.7rem;overflow:visible}.np__spec li:last-child b,.np__spec li:last-child span{color:var(--pp-clay)}.wire__hit{cursor:pointer}.np__stats{flex-wrap:wrap;gap:.2rem 1.4rem;margin-top:.75rem;display:flex}.np__stats:empty{display:none}.np__stats>span{flex-direction:column;display:flex}.np__stats b{font-family:var(--hand);color:var(--pp-clay);font-size:2.1rem;font-weight:400;line-height:1}.np__stats>span>span{color:var(--pp-ink-2);margin-top:.15rem;font-size:.7rem;line-height:1.35}.np__chart{flex-direction:column;gap:.3rem;margin-top:.75rem;display:flex}.np__chart:empty{display:none}.np__bar{align-items:center;gap:.45rem;display:flex}.np__bar>i:first-child{white-space:nowrap;min-width:2.4em;font-family:var(--mono);color:var(--pp-ink-2);flex:none;font-size:.68rem;font-style:normal}.np__bar>i:last-child{text-align:right;width:3.2em;font-family:var(--mono);color:var(--pp-ink);flex:none;font-size:.68rem;font-style:normal}.np__track{background:color-mix(in srgb, var(--pp-ink) 8%, transparent);flex:1;height:9px}.np__track>i{background:var(--pp-clay);height:100%;display:block}.np__unit{color:var(--pp-ink-2);margin-top:.1rem;font-size:.68rem}.np__more{margin-top:.75rem}.np__more[hidden]{display:none}.np__more>summary{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--pp-ink-2);cursor:pointer;border-top:1px dashed color-mix(in srgb, var(--pp-ink) 20%, transparent);padding-top:.55rem;font-size:.62rem}.np__more>summary:hover{color:var(--pp-clay)}.np__more .np__spec{border-top:0;margin-top:.55rem;padding-top:0}.nd--need{--nd-accent:var(--pp-clay)}.nd--skill{--nd-accent:var(--pp-sage)}.nd--give{--nd-accent:var(--pp-ochre)}.nd--case{--nd-accent:var(--pp-blue)}.nd--tile .nd__label{border-left:2px solid var(--nd-accent,transparent);padding-left:.4rem}.nd--tile .ic{color:var(--nd-accent,var(--pp-ink))}.nd--need .nd__frame:not(:has(.nd__art)),.nd--skill .nd__frame:not(:has(.nd__art)),.nd--give .nd__frame:not(:has(.nd__art)),.nd--case .nd__frame:not(:has(.nd__art)){background:color-mix(in srgb, var(--nd-accent) 7%, var(--pp-card));border:1px solid color-mix(in srgb, var(--nd-accent) 34%, transparent);place-items:center;width:88px;height:66px;margin:0 auto;display:grid}.nd--need .nd__frame .ic,.nd--skill .nd__frame .ic,.nd--give .nd__frame .ic,.nd--case .nd__frame .ic{width:34px;height:34px}.nd--need .nd__label,.nd--skill .nd__label,.nd--give .nd__label,.nd--case .nd__label{text-align:center;border-left:0;padding-left:0}.nd__tags{pointer-events:none;flex-direction:column;align-items:flex-start;gap:.18rem;display:flex;position:absolute;top:calc(50% + 15px);left:calc(100% - 6px)}.nd__tags:before{content:"";border-left:1px dashed color-mix(in srgb, var(--pp-ochre) 70%, transparent);height:8px;position:absolute;top:-9px;left:6px}.nd__tags:empty{display:none}.nd__tags i{white-space:nowrap;color:var(--pp-ink-2);background:color-mix(in srgb, var(--pp-card) 92%, transparent);border:1px dashed color-mix(in srgb, var(--pp-ochre) 70%, transparent);border-radius:2px;padding:.08rem .3rem;font-size:.62rem;font-style:normal;line-height:1.25}.nd--matrix{flex-direction:column;align-items:stretch;gap:0;width:auto;min-height:0;padding:.2rem .5rem .6rem}.nd--matrix .nd__paper{background:#fbf7ee;inset:-6px -4px}.ne__bar{border-bottom:1px dashed color-mix(in srgb, var(--pp-ink) 22%, transparent);cursor:grab;align-items:center;gap:.45rem;padding:.35rem .2rem .45rem;display:flex}.nd--matrix:active .ne__bar{cursor:grabbing}.ne__bar .nd__art{filter:none;width:30px;height:30px}.ne__name{white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;overflow:hidden}.ne__slot{cursor:default}.ne__slot:empty{display:none}.nd--matrix .port--in{top:1.2rem;left:-10px}.nm{width:960px;padding-top:.5rem}.nm__tabs{align-items:center;gap:.4rem;margin-bottom:.4rem;display:flex}.nm__tabs button{font-family:var(--hand);color:var(--pp-ink);border:1px solid var(--pp-ink);cursor:pointer;background:0 0;padding:.15rem .7rem;font-size:1rem}.nm__tabs button[aria-pressed=true]{background:var(--pp-ink);color:var(--pp-card)}.nm__full{font-family:var(--mono);color:var(--pp-ink);margin-left:auto;font-size:.62rem}.nm__lead{opacity:.8;max-width:46rem;margin:0 0 .2rem;font-size:.95rem;line-height:1.25}.nm__loom{width:960px;height:378px;display:block;overflow:visible}.nm__all path{fill:none;stroke-width:1px;opacity:.22}.nm__mine-under{fill:none;stroke:var(--pp-ink);stroke-width:5px}.nm__mine{fill:none;stroke-width:2.4px}.nm__axis{stroke:var(--pp-ink)}.nm__tick{font-family:var(--mono);fill:var(--pp-ink);font-size:10px}.nm__colkey{font-family:var(--mono);fill:var(--pp-clay);text-anchor:middle;font-size:11px}.nm__colname{font-family:var(--hand);fill:var(--pp-ink);text-anchor:middle;font-size:16px}.nm__dot{cursor:pointer}.nm__dot>circle{fill:var(--pp-card);stroke:var(--pp-ink);stroke-width:2px}.nm__dot:hover>circle{fill:color-mix(in srgb, var(--pp-clay) 35%, var(--pp-card))}.nm__dot.is-on>circle{fill:var(--pp-ink)}.nm__dot text{font-family:var(--mono);fill:var(--pp-ink);paint-order:stroke;stroke:var(--pp-card);stroke-width:3px;font-size:10px}.nm__land{fill:var(--pp-clay);stroke:var(--pp-ink);stroke-width:2px}.nm__strip{height:178px;position:relative}.nm__strip .nm__photo{width:150px;position:absolute;top:0}.nm__photo{isolation:isolate;margin:0;padding:8px 8px 0}.nm__photo:before{content:"";z-index:-1;filter:url(#torn2)drop-shadow(1px 3px 3px #3c30224d);background:#f3ecdc;transition:filter .3s;position:absolute;inset:0}.nm__photo:nth-child(2n):before{filter:url(#torn3)drop-shadow(1px 3px 3px #3c30224d)}.nm__photo .nm__shot{mix-blend-mode:multiply}.nm__strip .nm__photo:nth-child(odd){transform:rotate(-1.2deg)}.nm__strip .nm__photo:nth-child(2n){transform:rotate(.9deg)}.nm__photo .nm__shot{object-fit:contain;width:134px;height:101px;display:block}.nm__photo figcaption{max-width:134px;padding:4px 2px 6px;font-size:.8rem;line-height:1.15}.nm__photo figcaption b{font-family:var(--mono);color:var(--pp-clay);font-size:.6rem;font-weight:400}.nm__hit path{fill:none;stroke:#0000;stroke-width:8px;pointer-events:stroke;cursor:pointer}.nm__hov{fill:none;stroke:var(--pp-ink);stroke-width:1.6px;opacity:.75;pointer-events:none}.nm__ghost{fill:none;stroke:var(--pp-ink);stroke-width:2px;stroke-dasharray:4 4;pointer-events:none;animation:1.8s ease-out forwards nm-fade}@keyframes nm-fade{0%{opacity:.6}to{opacity:0}}.nm__dot.is-changed>circle{stroke:var(--pp-clay);stroke-width:4px}.nm__photo{position:relative}.nm__photo .nm__shot{transition:opacity .3s}.nm__photo.is-kept .nm__shot{opacity:.55}.nm__photo.is-new:before,.nm__pick.is-win:before{filter:url(#torn2) drop-shadow(0 0 2px var(--pp-clay)) drop-shadow(0 0 4px var(--pp-clay)) drop-shadow(1px 3px 3px #3c30224d)}.nm__genes{gap:2px;margin:0 0 4px;display:flex}.nm__genes i{font-style:normal;font-family:var(--mono);border:1px solid color-mix(in srgb, var(--pp-ink) 45%, transparent);padding:2px 3px;font-size:.55rem;line-height:1}.nm__genes i.is-changed{background:var(--pp-clay);border-color:var(--pp-clay);color:#fff}.nm__duel{justify-content:center;align-items:center;gap:1.6rem;margin:.6rem 0 .4rem;display:flex}.nm__pick{cursor:pointer;transition:transform .2s;position:relative}.nm__pick:first-child{transform:rotate(-1.4deg)}.nm__pick:last-child{transform:rotate(1.2deg)}.nm__pick:not([data-done]):hover{transform:scale(1.03)}.nm__pick .nm__shot{width:360px;height:270px}.nm__pick figcaption{max-width:none;font-size:1rem}.nm__or{font-size:2rem}.nm__compass{width:40px;height:40px;position:absolute;top:12px;right:12px}.nm__compass circle{fill:var(--pp-card);stroke:var(--pp-ink)}.nm__compass path{fill:var(--pp-clay);stroke:var(--pp-ink)}.nm__verdict{opacity:1;max-width:none;font-size:1.15rem}.nm__verdict b{color:var(--pp-clay)}.nm__next{font-family:var(--mono);border:1px solid var(--pp-ink);cursor:pointer;background:0 0;margin-left:.5rem;padding:2px 8px;font-size:.7rem}.nm__score{text-align:right;font-family:var(--mono);margin:0;font-size:.75rem}.nm__icon{vertical-align:-6px;width:26px;height:22px;margin-right:3px}.nm__frame{display:block;position:relative}.nm__fade{opacity:0;transition:opacity .6s;position:absolute;top:0;left:0}.nm__fade.is-in{opacity:1}.nm__flat{font-family:var(--mono);fill:var(--pp-clay);text-anchor:middle;font-size:9.5px}.nm__sun{width:124px;height:124px;position:absolute;top:12px;right:12px}.nm__sun-sky{fill:color-mix(in srgb, var(--pp-card) 88%, transparent);stroke:var(--pp-ink);stroke-width:3px}.nm__sun-jun,.nm__sun-dec{fill:none;stroke-width:9px;stroke-linecap:round}.nm__sun-jun{stroke:var(--pp-ochre)}.nm__sun-dec{stroke:var(--pp-clay)}.nm__sun text{font-family:var(--mono);text-anchor:middle;fill:var(--pp-ink);font-size:30px;font-weight:700}.nm__sun-room{fill:#e9e1cf;stroke:var(--pp-ink);stroke-width:4px}.nm__sun-win{stroke:var(--pp-clay);stroke-width:11px}.nm__sun-face{fill:none;stroke:var(--pp-clay);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.nm__score{justify-content:space-between;gap:1rem;display:flex}.nm__sunkey{font-family:var(--hand);opacity:.75;font-size:.9rem}.np__reveal{width:100%;font:inherit;font-family:var(--hand);color:var(--pp-clay);border:1px dashed color-mix(in srgb, var(--pp-clay) 55%, transparent);cursor:pointer;background:0 0;align-items:center;gap:.35rem;margin-top:.7rem;padding:.3rem .55rem;font-size:.92rem;display:flex}.np__reveal:hover{background:color-mix(in srgb, var(--pp-clay) 8%, transparent)}.np__reveal[hidden]{display:none}.np__reveal .ic{fill:currentColor;flex:none;width:1em;height:1em}@keyframes drop-settle{0%{opacity:0;translate:0 -40px;scale:.94}60%{opacity:1;translate:0 4px;scale:1.02}to{opacity:1;translate:0;scale:1}}.nd.is-revealed{animation:.26s ease-out drop-settle}.np__head{align-items:flex-start;gap:.5rem;display:flex}.nd--panel .nd__art,.nd--explain .nd__art{width:30px;height:30px;margin-top:-2px}.nd--num .nn{justify-content:center;align-items:center;gap:.45rem;min-width:104px;padding:.5rem .7rem;line-height:1;display:flex}.nd--num .nn:before{content:"";z-index:-1;background:var(--pp-card);filter:var(--torn) drop-shadow(2px 4px 3px #3c302247);position:absolute;inset:-2px -3px}.nd--num:hover .nn:before{filter:var(--torn) drop-shadow(2px 5px 4px #3c30225c)}.nd--num.is-selected .nn:before,.nd--num.is-target .nn:before{filter:var(--torn) drop-shadow(0 0 2px var(--pp-clay)) drop-shadow(0 0 6px var(--pp-clay)) drop-shadow(2px 4px 3px #3c302247)}.nd--num .nn__v{font-family:var(--hand);text-align:center;min-width:1.6rem;color:var(--pp-ink);font-size:2.4rem;font-weight:400;line-height:1}.nd--num .nn__b{width:24px;height:24px;font:inherit;color:var(--pp-ink-2);border:1px solid color-mix(in srgb, var(--pp-ink) 24%, transparent);cursor:pointer;user-select:none;background:#ffffff8c;border-radius:50%;place-items:center;font-size:1.05rem;line-height:1;display:grid}.nd--num .nn__b:hover{color:var(--pp-clay);border-color:var(--pp-clay)}.nd--num .nn .port--out{position:absolute;top:50%;right:-7px}.kits{border:1px solid color-mix(in srgb, var(--pp-ink) 20%, transparent);display:flex}.kits button{font:inherit;font-family:var(--hand);color:var(--pp-ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:.3rem .45rem;font-size:.82rem;line-height:1}.kits button+button{border-left:1px solid color-mix(in srgb, var(--pp-ink) 16%, transparent)}.kits button:hover{color:var(--pp-clay)}.kits [aria-current]{color:var(--pp-ink);background:color-mix(in srgb, var(--pp-clay) 16%, transparent);cursor:default;pointer-events:none}.p-ldr{background:var(--pp-paper);color:var(--pp-ink)}.p-ldr .nav a{color:var(--pp-ink)}.p-ldr .mark b{color:var(--pp-clay)}.p-ldr .foot{border-top-color:color-mix(in srgb, var(--pp-ink) 14%, transparent)}.p-ldr .foot a{color:var(--pp-ink-2)}.p-ldr .foot a:hover{color:var(--pp-clay)}.ldr{--rail:88px;max-width:62rem;margin-inline:auto;padding-block:clamp(1.25rem,3.5vh,2.25rem) clamp(3rem,10vh,6rem);position:relative}.ldr__head{max-width:44rem}.ldr__head h1{letter-spacing:-.022em;margin:.6rem 0 1rem;font-size:clamp(1.8rem,3.9vw,2.7rem);line-height:1.06}.ldr__head .lede{color:var(--pp-ink-2);max-width:52ch}.ldr__lang{font-family:var(--mono);letter-spacing:.1em;color:var(--pp-ink-2);border:1px solid color-mix(in srgb, var(--pp-ink) 20%, transparent);cursor:pointer;background:0 0;padding:.3rem .5rem;font-size:.72rem;position:absolute;top:0;right:0}.ldr__lang:hover{color:var(--pp-clay);border-color:var(--pp-clay)}body:not(.js) .ldr__lang{display:none}.ldr__pick{flex-wrap:wrap;gap:.5rem;margin:clamp(1.25rem,3.5vh,2rem) 0 0;display:flex}.ldr__pick a{font-family:var(--sans);letter-spacing:.01em;color:var(--pp-ink-2);border:1px solid color-mix(in srgb, var(--pp-ink) 20%, transparent);padding:.42rem .7rem;font-size:.84rem;text-decoration:none}.ldr__pick a:hover{color:var(--pp-clay);border-color:var(--pp-clay)}.ldr__pick a[aria-current=true]{color:var(--pp-paper);background:var(--pp-ink);border-color:var(--pp-ink)}.ldr__sym{border-top:1px solid color-mix(in srgb, var(--pp-ink) 14%, transparent);margin-top:clamp(2.5rem,7vh,4rem);padding-top:clamp(1.5rem,4vh,2.25rem)}.ldr__open{letter-spacing:-.012em;color:var(--pp-ink-2);max-width:34ch;margin:0 0 clamp(1.1rem,3vh,1.8rem);font-size:clamp(1.2rem,2.6vw,1.7rem);font-weight:400;line-height:1.25}.ldr__well{position:relative}.ldr__shaft{transform-origin:0 0;position:relative}.ldr__rails{width:var(--rail);height:100%;position:absolute;top:0;left:0}.ldr__rails path{fill:none;stroke:var(--pp-ink);stroke-width:2.4px;stroke-linecap:round;opacity:.45}.ldr__rungs{margin:0;padding:0;list-style:none}.ldr__rung{padding:0 0 clamp(1.75rem, 5vh, 3rem) calc(var(--rail) + clamp(1rem, 3vw, 2rem));position:relative}.ldr__step{width:var(--rail);height:auto;position:absolute;top:0;left:0}.ldr__step path{fill:none;stroke:var(--pp-ink);stroke-width:3.2px;stroke-linecap:round}.ldr__n{font-family:var(--mono);letter-spacing:.14em;color:color-mix(in srgb, var(--pp-ink) 42%, transparent);margin:0 0 .35rem;font-size:.7rem}.ldr__see{letter-spacing:-.012em;max-width:32ch;margin:0;font-size:clamp(1.1rem,2.1vw,1.4rem);line-height:1.28}.ldr__rung.is-floor .ldr__see{border-left:2px solid var(--pp-clay);max-width:40ch;padding-left:.9rem;font-size:clamp(1.2rem,2.5vw,1.6rem)}.ldr__rung.is-floor{padding-bottom:0}.ldr__why{color:var(--pp-ink-2);max-width:40ch;margin:.9rem 0 0;font-size:.95rem}.ldr__why:before{content:"↳ ";color:var(--pp-clay)}.ldr__card{--torn:url(#torn0);max-width:27rem;margin:1.1rem 0 0;padding:.9rem 1.1rem 1rem;position:relative}.ldr__card[data-seed="1"]{--torn:url(#torn1)}.ldr__card[data-seed="2"]{--torn:url(#torn2)}.ldr__card[data-seed="3"]{--torn:url(#torn3)}.ldr__card:before{content:"";background:var(--pp-card);filter:var(--torn) drop-shadow(1px 3px 3px #3c302238);position:absolute;inset:-5px -3px}.ldr__card>*{position:relative}.ldr__tag{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--pp-ink) 45%, transparent);margin:0 0 .4rem;font-size:.68rem}.ldr__buy{margin:0;font-size:1.05rem;line-height:1.2}.ldr__price{font-family:var(--sans);letter-spacing:.01em;color:var(--pp-ink-2);margin:.25rem 0 0;font-size:.8rem}.ldr__bill{color:var(--pp-ink-2);border-top:1px dashed color-mix(in srgb, var(--pp-ink) 22%, transparent);margin:.75rem 0 0;padding-top:.7rem;font-size:.92rem;line-height:1.45}.ldr__acts{gap:.5rem;margin:.9rem 0 0;display:flex}.ldr__acts button{font:inherit;color:var(--pp-ink);border:1px solid var(--pp-ink);cursor:pointer;background:0 0;padding:.4rem .85rem;font-size:.85rem}.ldr__acts button:hover{color:var(--pp-paper);background:var(--pp-ink)}.ldr__acts [data-why]{border-color:var(--pp-clay);color:var(--pp-clay)}.ldr__acts [data-why]:hover{color:var(--pp-paper);background:var(--pp-clay)}.ldr__stamp{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--pp-clay);border:1px solid var(--pp-clay);margin:0;padding:.15rem .35rem;font-size:.64rem;position:absolute;top:.7rem;right:.9rem;transform:rotate(-7deg)}.ldr__foot{padding-left:calc(var(--rail) + clamp(1rem, 3vw, 2rem));max-width:48rem;margin-top:clamp(1.5rem,4vh,2.5rem)}.ldr__lookup{font-family:var(--sans);letter-spacing:.01em;color:var(--pp-ink-2);border:1px dashed color-mix(in srgb, var(--pp-ink) 26%, transparent);cursor:pointer;background:0 0;padding:.4rem .7rem;font-size:.82rem}.ldr__lookup:hover{color:var(--pp-clay);border-color:var(--pp-clay)}.ldr__ends p{max-width:46ch;margin:1.1rem 0 0;font-size:1.05rem;line-height:1.45}.ldr__ends b{color:var(--pp-clay);font-weight:400}.ldr__sell{color:var(--pp-ink-2);max-width:52ch;margin:1.1rem 0 0;font-size:.97rem;line-height:1.55}.ldr__cta{margin:1.1rem 0 0}.ldr__cta a{font-family:var(--sans);letter-spacing:.01em;color:var(--pp-paper);background:var(--pp-ink);padding:.55rem .9rem;font-size:.86rem;text-decoration:none;display:inline-block}.ldr__cta a:hover{background:var(--pp-clay)}.ldr__hint{font-family:var(--sans);letter-spacing:.02em;color:color-mix(in srgb, var(--pp-ink) 40%, transparent);margin:clamp(1.5rem,4vh,2.5rem) 0 0;font-size:.78rem}body:not(.js) .ldr__hint,body:not(.js) .ldr__lookup,body:not(.js) .ldr__acts,body:not(.js) .ldr__stamp,body:not(.js) .ldr__ends,body.has-ladder .ldr__sym{display:none}body.has-ladder .ldr__sym.is-on{display:block}body.has-ladder .ldr__well{height:clamp(19rem,58svh,32rem);overflow:hidden}body.has-ladder .ldr__well:focus-visible{outline:1px solid var(--pp-clay);outline-offset:6px}body.has-ladder .ldr__shaft{will-change:transform}body.has-ladder .ldr__shaft.is-easing{transition:transform .48s cubic-bezier(.22,.61,.36,1)}body.has-ladder .ldr__rung.is-next{opacity:.3;max-height:2.4rem;padding-bottom:0;overflow:hidden}body.has-ladder .ldr__rung.is-next .ldr__body{visibility:hidden}body.has-ladder .ldr__rung.is-below{display:none}body.has-ladder .ldr__rung.is-past{opacity:.62}body.has-ladder .ldr__rung.is-past:hover{opacity:1}body.has-ladder .ldr__bill,body.has-ladder .ldr__stamp,body.has-ladder .ldr__why{display:none}body.has-ladder .ldr__rung.is-bought .ldr__bill,body.has-ladder .ldr__rung.is-bought .ldr__stamp,body.has-ladder .ldr__rung.is-past .ldr__why{display:block}body.has-ladder .ldr__rung.is-bought [data-buy],body.has-ladder .ldr__rung.is-past .ldr__acts,body.has-ladder .ldr__foot{display:none}body.has-ladder .ldr__foot.is-on,body.has-ladder .ldr__ends{display:block}body.has-ladder .ldr__ends p{display:none}body.has-ladder .ldr__ends p.is-on{display:block}body.has-ladder .ldr__well.is-lookup .ldr__rung .ldr__tag,body.has-ladder .ldr__well.is-lookup .ldr__rung .ldr__price,body.has-ladder .ldr__well.is-lookup .ldr__rung .ldr__bill,body.has-ladder .ldr__well.is-lookup .ldr__rung .ldr__acts,body.has-ladder .ldr__well.is-lookup .ldr__rung .ldr__why{display:none}body.has-ladder .ldr__well.is-lookup .ldr__rung{opacity:1;padding-bottom:clamp(1rem,2.5vh,1.5rem)}body.has-ladder .ldr__well.is-lookup .ldr__card{margin-top:.6rem;padding-bottom:.75rem}@media (width<=620px){.ldr{--rail:58px}.ldr__step path{stroke-width:3.6px}.ldr__head h1{margin:.5rem 0 .75rem;font-size:1.55rem}.ldr__head .lede{font-size:.92rem;line-height:1.45}.ldr__pick{gap:.4rem}.ldr__pick a{padding:.35rem .55rem;font-size:.78rem}.ldr__open{font-size:1.1rem}.ldr__card{max-width:none;margin-right:.4rem}.ldr__tag{padding-right:4rem}body.has-ladder .ldr__well{height:clamp(17rem,62svh,26rem)}}@media (prefers-reduced-motion:reduce){body.has-ladder .ldr__shaft.is-easing{transition:none}}.nm__vlabel{font-family:var(--mono);text-anchor:middle;fill:var(--pp-ink);opacity:.7;font-size:8.5px}.nm__vtext{font-family:var(--mono);text-anchor:end;fill:var(--pp-ink);font-size:10px}.nm__dot image,.nm__dot svg{opacity:.55;transition:opacity .2s}.nm__dot:hover image,.nm__dot:hover svg,.nm__dot.is-on image,.nm__dot.is-on svg{opacity:1}.nm__dot.is-on .nm__vlabel{opacity:1;font-weight:700}.nm__compass-s circle{fill:var(--pp-card);stroke:var(--pp-ink);stroke-width:1.4px}.nm__compass-s path{stroke:var(--pp-clay);stroke-width:3px;stroke-linecap:round}.nm__dot:not(.is-on) .nm__compass-s{opacity:.55}.nm__flatbg{fill:color-mix(in srgb, var(--pp-clay) 14%, var(--pp-card))}.nm__leader{stroke:var(--pp-clay);stroke-width:1.4px;stroke-dasharray:3 4}.nm__tag rect{fill:color-mix(in srgb, var(--pp-clay) 14%, var(--pp-card));stroke:var(--pp-ink)}.nm__tagv{font-family:var(--mono);fill:var(--pp-ink);font-size:20px}.nm__tagv tspan{font-size:10px}.nm__tagr{font-family:var(--hand);fill:var(--pp-clay);font-size:13px}.nm__tick{text-anchor:end}.nm__dna{opacity:.75;margin:.1rem 0 0;font-size:.9rem}.nm>.nm__full{margin-top:.5rem;display:inline-block}.nd--plan{--nd-accent:var(--pp-clay)}.nd--aim{--nd-accent:var(--pp-sage)}.nd--sky{--nd-accent:var(--pp-blue)}.nd--sky .nd__frame{width:88px;margin:0 auto}.nd--sky .nd__art{width:88px;height:76px}.nd--sky .nd__label{text-align:center;border-left:0;padding-left:0}.nd__frame--wide{padding:.45rem .5rem .3rem;display:block}.nd__frame--wide:before{content:"";z-index:-1;background:var(--pp-card);filter:var(--torn) drop-shadow(2px 4px 3px #3c302247);position:absolute;inset:-2px -3px}.nd--plan:hover .nd__frame--wide:before,.nd--aim:hover .nd__frame--wide:before{filter:var(--torn) drop-shadow(2px 5px 4px #3c30225c)}.nd--plan.is-selected .nd__frame--wide:before,.nd--plan.is-target .nd__frame--wide:before,.nd--aim.is-selected .nd__frame--wide:before,.nd--aim.is-target .nd__frame--wide:before{filter:var(--torn) drop-shadow(0 0 2px var(--pp-clay)) drop-shadow(0 0 6px var(--pp-clay)) drop-shadow(2px 4px 3px #3c302247)}.nd--plan .nd__frame--wide .port--out,.nd--aim .nd__frame--wide .port--out{position:absolute;top:50%;right:-7px}.nd--plan .nd__label,.nd--aim .nd__label{text-align:center;border-left:0;padding-left:0}.nw__slot{cursor:default;display:block}.dp{display:block;overflow:visible}.dp__floor{fill:color-mix(in srgb, var(--pp-ochre) 9%, transparent)}.dp__wall,.dp__hatch,.dp__win,.dp__ray,.dp__dimline{fill:none;stroke-linecap:round;stroke-linejoin:round}.dp__wall{stroke:#4a443c;stroke-width:1.5px;opacity:.72}.dp__hatch{stroke:#6b635a;stroke-width:.7px;opacity:.4}.dp__win{stroke:var(--pp-blue);stroke-width:1.6px;opacity:.95}.dp__ray{stroke:var(--pp-ochre);stroke-width:1.1px;opacity:.75}.dp__dimline{stroke:#6b635a;stroke-width:.8px;opacity:.5}.dp__glass{fill:color-mix(in srgb, var(--pp-blue) 26%, var(--pp-card));stroke:none}.dp__ghost{fill:color-mix(in srgb, var(--pp-blue) 45%, var(--pp-card));stroke:var(--pp-blue);stroke-width:1px;stroke-dasharray:3 2;pointer-events:none}.dp--over .dp__glass,.dp--over .dp__win{opacity:.35}.dp--over .dp__cue{opacity:1}.nw__slot:has(.dp__winhit:hover,.dp__hit--end:hover,.dp__wallhit:hover) .dp__glass{fill:color-mix(in srgb, var(--pp-blue) 50%, var(--pp-card))}.dp__grip{fill:var(--pp-card);stroke:var(--pp-clay);stroke-width:1.8px;pointer-events:none}.nw__slot:has(.dp__hit--size:hover) .dp__grip--size,.nw__slot:has(.dp__hit--end:hover) .dp__grip--win{fill:var(--pp-clay)}.dp__hit,.dp__wallhit,.dp__winhit,.dp__turnhit{fill:#0000}.dp__hit--size{cursor:nwse-resize}.dp__hit--end{cursor:ew-resize}.dp__winhit{cursor:grab}.dp__winhit:active{cursor:grabbing}.dp__wallhit,.dp__turnhit{cursor:pointer}.dp__cue{font-family:var(--hand);fill:var(--pp-clay);text-anchor:middle;pointer-events:none;opacity:0;font-size:.72rem;transition:opacity .15s}.nw__slot:has(.dp__winhit:hover,.dp__hit--end:hover,.dp__wallhit:hover) .dp__cue{opacity:1}.dp__turn{fill:none;stroke:var(--pp-ink-2);stroke-width:1.4px;stroke-linecap:round;pointer-events:none}.dp__turnlabel{font-family:var(--hand);fill:var(--pp-ink-2);pointer-events:none;font-size:.72rem}.nw__slot:has(.dp__turnhit:hover) .dp__turn{stroke:var(--pp-clay);stroke-width:1.8px}.nw__slot:has(.dp__turnhit:hover) .dp__turnlabel{fill:var(--pp-clay)}.dp__dim,.dp__note{font-family:var(--hand);fill:var(--pp-ink-2)}.dp__dim{text-anchor:middle;font-size:.82rem}.dp__note{font-size:.78rem}.da{cursor:grab;display:block;overflow:visible}.nd--aim .nw__slot:active .da{cursor:grabbing}.da__brass,.da__brass-hi,.da__wash,.da__rose,.da__needle--tail,.da__hub-dot,.da__cardinal:nth-of-type(n+2){display:none}.da__face{fill:none;stroke:#4a443c;stroke-width:1.3px;opacity:.72}.da__tick{fill:none;stroke:#4a443c;stroke-width:.9px;opacity:.4;stroke-linecap:round}.da__needle--tip{fill:var(--pp-clay);stroke:var(--pp-clay);stroke-width:1px;stroke-linejoin:round;opacity:.95}.da__hub{fill:var(--pp-card);stroke:#4a443c;stroke-width:1.2px;opacity:.8}.da__cardinal{font-family:var(--hand);fill:#4a443c;text-anchor:middle;dominant-baseline:middle;font-size:.9rem}.da__name{font-family:var(--hand);fill:var(--pp-ink);text-anchor:middle;font-size:.86rem}.nd--room3d{flex-direction:column;align-items:stretch;gap:0;width:auto;min-height:0;padding:.4rem .5rem .35rem}.nd--room3d:before{content:"";z-index:-1;background:var(--pp-card);filter:var(--torn) drop-shadow(2px 4px 3px #3c302247);position:absolute;inset:-2px -3px}.nd--room3d.is-selected:before,.nd--room3d.is-target:before{filter:var(--torn) drop-shadow(0 0 2px var(--pp-clay)) drop-shadow(0 0 6px var(--pp-clay)) drop-shadow(2px 4px 3px #3c302247)}.nd--room3d .port--in{top:1.2rem;left:-7px}.nd--room3d .ne__bar{border-bottom:1px solid color-mix(in srgb, var(--pp-ink) 14%, transparent);cursor:grab;background:0 0;padding:.1rem .15rem .35rem}.nd--room3d .ne__bar .ic{fill:var(--pp-ink-2);color:var(--pp-ink-2)}.nd--room3d .nd__art{width:26px;height:26px}.nd--room3d .ne__name{font-family:var(--hand);letter-spacing:0;text-transform:none;color:var(--pp-ink);font-size:.95rem}.dv{cursor:default;display:block}.dv canvas{cursor:grab;filter:url(#wobble);display:block}.dv canvas:active{cursor:grabbing}.dv__legend{align-items:center;gap:.3rem;padding:.35rem .1rem .15rem;display:flex}.dv__legend[hidden]{display:none}.dv__legend button{font:inherit;font-family:var(--hand);color:var(--pp-ink-2);border:1px solid color-mix(in srgb, var(--pp-ink) 20%, transparent);cursor:pointer;white-space:nowrap;background:0 0;padding:.22rem .4rem;font-size:.82rem;line-height:1}.dv__legend button:hover{color:var(--pp-clay);border-color:var(--pp-clay)}.dv__legend [aria-pressed=true]{color:var(--pp-ink);background:color-mix(in srgb, var(--pp-clay) 16%, transparent);border-color:color-mix(in srgb, var(--pp-clay) 55%, transparent);cursor:default}.dv__ramp{border:1px solid color-mix(in srgb, var(--pp-ink) 16%, transparent);background:linear-gradient(90deg,#3d4557,#856661 35%,#d99e5c 70%,#faf0cc);flex:1;min-width:40px;height:9px}.dv__note{color:var(--pp-ink-2);margin:0;padding:.25rem .1rem 0;font-size:.7rem;line-height:1.45}:root{--c-paper:#f4f2ed;--c-charcoal:#1b1a19;--c-ink:#161616;--paper:var(--c-paper);--ink:var(--c-ink);--signal:#e0522c;--signal-text:#b8401c;--layer:color-mix(in srgb, var(--ink) 4%, var(--paper));--layer-hover:color-mix(in srgb, var(--ink) 7%, var(--paper));--rule:color-mix(in srgb, currentColor 16%, transparent);--rule-strong:color-mix(in srgb, currentColor 40%, transparent);--dim:color-mix(in srgb, currentColor 64%, transparent);color-scheme:light;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--serif:"IBM Plex Serif", Georgia, "Times New Roman", serif;--italic:"IBM Plex Serif", Georgia, "Times New Roman", serif;--pixel:"Silkscreen", "IBM Plex Mono", ui-monospace, monospace;--t-display:clamp(3rem, 1.1rem + 7.4vw, 9.75rem);--t-h1:clamp(2.5rem, 1.45rem + 4.3vw, 6rem);--t-h2:clamp(1.75rem, 1.3rem + 1.8vw, 3rem);--t-h3:clamp(1.25rem, 1.1rem + .6vw, 1.75rem);--t-lead:clamp(1.125rem, 1rem + .5vw, 1.5rem);--t-long:clamp(1.0625rem, 1rem + .3vw, 1.25rem);--t-body:1rem;--t-small:.875rem;--t-label:.75rem;--sp-1:2px;--sp-2:4px;--sp-3:8px;--sp-4:12px;--sp-5:16px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:48px;--sp-10:64px;--sp-11:80px;--sp-12:96px;--sp-13:160px;--pad:clamp(16px, 3.4vw, 64px);--gut:clamp(16px, 2.2vw, 32px);--sec:clamp(40px, 5vw, 80px);--mast-h:48px;--stick:var(--sp-6);--reg-arm:20px;--reg-w:2px;--reg-c:color-mix(in srgb, var(--ink) 82%, transparent);--ease:cubic-bezier(.2, 0, .38, .9);--ease-in:cubic-bezier(0, 0, .38, .9);--ease-out:cubic-bezier(.2, 0, 1, .9);--ease-x:cubic-bezier(.4, .14, .3, 1);--ease-x-in:cubic-bezier(0, 0, .3, 1);--ease-x-out:cubic-bezier(.4, .14, 1, 1);--fast-1:70ms;--fast-2:.11s;--mod-1:.15s;--mod-2:.24s;--slow-1:.4s;--slow-2:.7s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:var(--c-charcoal);--ink:var(--c-paper);--signal:#ec5f36;--signal-text:#f07a52;color-scheme:dark}}:root[data-theme=dark]{--paper:var(--c-charcoal);--ink:var(--c-paper);--signal:#ec5f36;--signal-text:#f07a52;color-scheme:dark}@media (width>=1056px){:root{--stick:calc(var(--mast-h) + var(--sp-6))}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--paper);scroll-padding-top:calc(var(--stick) + var(--sp-3))}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--paper);color:var(--ink);font:400 var(--t-body)/1.5 var(--sans);letter-spacing:.01em;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100svh;margin:0;display:flex}h1,h2,h3,h4{text-wrap:balance;letter-spacing:0;margin:0;font-weight:300}p{text-wrap:pretty;margin:0 0 1em}a{color:inherit}b,strong{font-weight:600}::selection{background:var(--signal);color:var(--c-paper)}main{padding:0 var(--pad);flex:1}.label{font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--dim);margin:0 0 var(--sp-6)}.lede{max-width:46ch;font-size:var(--t-lead);font-weight:300;line-height:1.4}.prose{max-width:62ch}.ul,.foot a,.crumbs a,.po-meta a,.po-foot>a,.cv a,.p-contact dd a,.p-err dd a,.bl-empty a{transition:background-size var(--mod-2) var(--ease), color var(--fast-2) var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;text-decoration:none}:is(.ul,.foot a,.crumbs a,.po-meta a,.po-foot>a,.cv a,.p-contact dd a,.p-err dd a,.bl-empty a):is(:hover,:focus-visible){background-size:100% 1px}:where(button,.btn,.tg):active{translate:0 1px}.mast{z-index:20;align-items:stretch;column-gap:var(--gut);padding-inline:var(--pad);background:var(--paper);border-bottom:1px solid var(--rule);view-transition-name:mast;flex-wrap:wrap;display:flex;position:relative}.mast__crumb{min-height:var(--mast-h);align-items:center;gap:var(--sp-4);flex:1;min-width:0;display:flex}.mast__tools{align-items:center;gap:var(--sp-5);order:2;display:flex}.mast .nav{flex-basis:100%;order:3}@media (width>=1056px){.mast{grid-template-columns:repeat(12,minmax(0,1fr));display:grid;position:sticky;top:0}.mast__crumb{grid-column:1/4}.mast .nav{margin-left:calc(var(--sp-5) * -1);flex-basis:auto;order:0;grid-column:4/12}.mast__tools{grid-area:1/12;justify-self:end}.mast:has([data-theme-toggle]) .nav{grid-column:4/11}.mast:has([data-theme-toggle]) .mast__tools{grid-column:11/13}}@media (width>=1056px) and (width<=1439px){.mast:has([data-theme-toggle]) .nav>a{padding-inline:var(--sp-3)}.mast:has([data-theme-toggle]) .nav>a[aria-current=page]:after{left:var(--sp-3);right:var(--sp-3)}}@media (width>=1056px) and (width<=1279px){html .mast .nav>a,html .mast .nav__inline>a,html .mast:has([data-theme-toggle]) .nav>a,html .mast .nav:has(.nav__inline)>a{padding-inline:6px;font-size:.8125rem}.mast .nav>a[aria-current=page]:after,.mast:has([data-theme-toggle]) .nav>a[aria-current=page]:after{left:6px;right:6px}}@media (width>=1280px) and (width<=1439px){html .mast .nav:has(.nav__inline)>a,html .mast .nav__inline>a{padding-inline:6px}}.mark{min-height:44px;font:600 .9375rem/1 var(--sans);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:1px;text-decoration:none;display:inline-flex}.mark b{color:var(--signal);place-items:center;margin-right:.2em;font-weight:600;display:inline-grid}.mark svg{width:.95em;height:.95em;margin-left:1px;overflow:visible}.mark svg path{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:square}.mark .mk-v{d:path("M8 2L8 8L8 14");transition:d var(--mod-2) var(--ease-x)}.mark svg{transition:rotate var(--mod-2) var(--ease-x)}@supports (d:path("M0 0")){.mast__crumb:not(.is-home) .mark:is(:hover,:focus-visible) .mk-v{d:path("M7 3L2 8L7 13")}}@supports not (d:path("M0 0")){.mast__crumb:not(.is-home) .mark:is(:hover,:focus-visible) svg{rotate:90deg}}.is-home .mark:is(:hover,:focus-visible) svg{rotate:90deg}.trail{min-width:0;height:var(--mast-h);align-items:center;display:grid;overflow:hidden}.trail>*{min-width:0;transition:transform var(--mod-2) var(--ease-x), opacity var(--mod-1) var(--ease);grid-area:1/1}.crumbs{align-items:baseline;gap:var(--sp-3);font:400 .875rem/1.2 var(--sans);white-space:nowrap;min-width:0;margin:0;padding:0;list-style:none;display:flex}.crumbs li{gap:var(--sp-3);min-width:0;display:flex}.crumbs li:not(:last-child){flex-shrink:0}.crumbs li:before{content:"/";color:var(--dim)}.crumbs li:last-child span{text-overflow:ellipsis;overflow:hidden}.crumbs a{color:var(--dim)}.crumbs a:hover{color:var(--ink)}.trail__hint{font:400 var(--t-label)/1 var(--mono);color:var(--signal-text);opacity:0;transform:translateY(110%)}.mast__crumb:not(.is-home) .mark:is(:hover,:focus-visible)+.trail .crumbs{opacity:0;transform:translateY(-110%)}.mast__crumb:not(.is-home) .mark:is(:hover,:focus-visible)+.trail .trail__hint{opacity:1;transform:none}.mark:focus-visible{outline-offset:2px}.nav{z-index:5;flex-wrap:wrap;align-items:stretch;display:flex;position:relative}.nav a,.nav__item>a{min-height:44px;padding:0 var(--sp-5);letter-spacing:.01em;color:color-mix(in srgb, currentColor 70%, transparent);transition:color var(--fast-2) var(--ease), background-color var(--fast-2) var(--ease);align-items:center;font-size:.875rem;text-decoration:none;display:flex;position:relative}.mast .nav>a,.mast .nav__item>a{min-height:var(--mast-h)}.nav a:hover{color:var(--ink);background:var(--layer-hover)}.mast .nav>a.nav__home{padding-inline:var(--sp-4);color:var(--signal-text)}.nav__home .g{stroke:currentColor;width:14px;height:14px;transition:rotate var(--mod-2) var(--ease-x)}.nav__home:is(:hover,:focus-visible) .g{rotate:90deg}@media (prefers-reduced-motion:reduce){.nav__home .g{transition:none}}.nav a[aria-current=page]{color:var(--ink)}.mast .nav>a[aria-current=page]:after,.mast .nav__item>a[aria-current=page]:after{content:"";left:var(--sp-5);right:var(--sp-5);background:var(--signal);transform-origin:0;height:2px;animation:tab-in var(--mod-2) var(--ease-x-in) both;position:absolute;bottom:-1px}@keyframes tab-in{0%{transform:scaleX(0)}}.nav__item{display:flex;position:relative}.nav__sub{z-index:6;padding:var(--sp-3) 0;background:var(--nav-pop,var(--paper));border:1px solid var(--rule);opacity:0;visibility:hidden;min-width:11rem;transition:opacity var(--mod-1) var(--ease-out), transform var(--mod-1) var(--ease-out), visibility var(--mod-1);margin:0;list-style:none;display:grid;position:absolute;top:100%;left:0;transform:translateY(-4px)}.nav__item:hover .nav__sub,.nav__item:focus-within .nav__sub{opacity:1;visibility:visible;transition-timing-function:var(--ease-in);transform:none}.nav__sub a{min-height:40px}.nav__sub a[aria-current=page]{box-shadow:inset 2px 0 0 var(--signal)}.nav__inline{border-left:1px solid var(--rule);align-items:stretch;display:flex}.mast .nav:has(.nav__inline)>a{padding-inline:var(--sp-3)}.mast .nav__inline>a{min-height:var(--mast-h);padding-inline:var(--sp-3);font-family:var(--mono);font-size:var(--t-label);color:var(--dim)}.mast .nav__inline>a[aria-current=page]{color:var(--ink)}.mast .nav__inline>a[aria-current=page]:after{content:"";left:var(--sp-4);right:var(--sp-4);background:var(--signal);transform-origin:0;height:2px;animation:tab-in var(--mod-2) var(--ease-x-in) both;position:absolute;bottom:-1px}.mast .nav>a[aria-current=page]+.nav__inline{border-left-color:var(--rule-strong)}body.p-lab{--nav-pop:var(--pp-card)}.p-lab .mast,.p-ldr .mast{background:var(--pp-paper);border-bottom-color:color-mix(in srgb, var(--pp-ink) 14%, transparent)}@media (width<=699px){.mast .nav{scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:calc(var(--pad) - var(--sp-4));border-top:1px solid var(--rule);flex-wrap:nowrap;overflow-x:auto;mask-image:linear-gradient(90deg,#000 85%,#0000)}.mast .nav::-webkit-scrollbar{display:none}.nav a,.nav__item>a{padding-inline:var(--sp-4);white-space:nowrap}.nav__item,.nav__sub,.nav__sub li{display:contents}.nav__sub{visibility:visible}.nav__sub a{color:var(--dim)}.nav__sub a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--signal);color:var(--ink)}}.tg{align-items:center;gap:var(--sp-3);min-height:44px;padding:0 0 0 var(--sp-3);color:inherit;font:400 var(--t-label)/1 var(--mono);letter-spacing:.02em;cursor:pointer;background:0 0;border:0;align-self:center;margin:0;display:none}.has-js .tg{display:inline-flex}.tg__track{width:28px;height:14px;transition:background-color var(--fast-2) var(--ease);border:1px solid;position:relative}.tg__knob{width:8px;height:8px;transition:transform var(--mod-1) var(--ease-x);background:currentColor;position:absolute;top:2px;left:2px}.tg[aria-checked=true] .tg__knob{background:var(--signal);transform:translate(14px)}.tg:hover .tg__track{background:var(--layer-hover)}.tg__label{color:var(--dim);min-width:4ch}.tg:hover .tg__label{color:var(--ink)}html:not([data-lang=vi]) [data-tr=vi],html[data-lang=vi] [data-tr=en]{display:none!important}.bi-sw{gap:var(--sp-2);padding:0}.bi-sw .tg__label{min-width:0}.bi-sw:not([aria-checked=true]) .tg__label:first-child,.bi-sw[aria-checked=true] .tg__label:last-child{color:var(--ink)}.mast__progress{display:none}@supports (animation-timeline:scroll()){:is(.p-philosophy,.p-founder,.p-post,.p-work):not(.ad) .mast__progress{background:var(--signal);transform-origin:0;height:1px;animation:linear both progress scroll(root);display:block;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.mast__cap{display:none}@supports (animation-timeline:scroll()){:is(.p-philosophy,.p-founder,.p-post,.p-work):not(.ad) .mast__cap{width:10px;height:10px;stroke:var(--signal);pointer-events:none;opacity:0;animation:linear both cap-ride scroll(root);display:block;position:absolute;bottom:-5px;left:0}@media (prefers-reduced-motion:no-preference){:is(.p-philosophy,.p-founder,.p-post,.p-work):not(.ad) .mast__cap{animation-name:cap-ride,cap-turn}}}@keyframes cap-ride{0%{opacity:1;left:0}to{opacity:1;left:calc(100% - 10px)}}@keyframes cap-turn{0%{rotate:0deg}to{rotate:180deg}}.sh .label:after{content:"";vertical-align:.05em;--t:var(--signal-text);background:linear-gradient(var(--t), var(--t)) 50% 50% / 100% var(--reg-w) no-repeat, linear-gradient(var(--t), var(--t)) 50% 50% / var(--reg-w) 100% no-repeat;width:9px;height:9px;margin-left:.75ch;display:inline-block}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.sh .label:after{animation:linear both tick-in view();animation-range:entry entry 90%}}}@keyframes tick-in{0%{opacity:0;rotate:-90deg}to{opacity:1;rotate:0deg}}.foot{justify-content:space-between;gap:var(--sp-5) var(--sp-7);padding:var(--sp-6) var(--pad) var(--sp-7);margin-top:var(--sec);border-top:1px solid var(--rule);font:400 var(--t-label)/1.5 var(--mono);letter-spacing:.02em;color:var(--dim);flex-wrap:wrap;display:flex}.foot a{color:var(--ink)}.site-end{isolation:isolate;padding:0 var(--pad);color:var(--ink);margin-top:0;position:relative;overflow-x:clip}.site-end:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(var(--rule), var(--rule)) calc(var(--pad) - var(--sp-3)) 0 / 1px 100% no-repeat, linear-gradient(var(--rule), var(--rule)) calc(100% - var(--pad) + var(--sp-3)) 0 / 1px 100% no-repeat;position:absolute;inset:0}.se__row{gap:var(--sp-3) var(--gut);padding:var(--sp-5) 0;display:grid;position:relative}.se__row:after{content:"";top:0;left:calc(var(--sp-3) * -1);right:calc(var(--sp-3) * -1);background:var(--rule);height:1px;position:absolute}.se__k{font:400 var(--t-label)/1.5 var(--mono);letter-spacing:.02em;color:var(--dim);margin:0}.se__say{justify-content:space-between;align-items:center;gap:var(--sp-3) var(--sp-7);flex-wrap:wrap;min-width:0;display:flex}.se__big{align-items:center;gap:var(--sp-4);max-width:100%;font:200 var(--t-h2)/1.1 var(--sans);letter-spacing:-.02em;text-decoration:none;display:inline-flex}.se__big .g{width:.7em;height:.7em;stroke:var(--signal)}.se__mail{font:400 var(--t-small)/1.3 var(--mono);min-height:44px;color:var(--ink);text-underline-offset:.3em;overflow-wrap:anywhere;align-items:center;display:inline-flex}.se__mail:hover{color:var(--signal-text)}.tb{--tb-pl:var(--sp-4);border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"proj proj""sheet scope""contact contact""nav nav""loc rev""next top";margin:0 -9px 0 -8px;display:grid;position:relative}.tb--home{grid-template-areas:"proj proj""sheet scope""contact contact""loc rev""next top"}.tb__c{overflow-wrap:anywhere;min-width:0;padding:var(--sp-3) var(--sp-4) var(--sp-4) var(--tb-pl);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);font:400 var(--t-small)/1.4 var(--sans);position:relative;overflow:hidden}.tb__proj{padding-left:calc(var(--sp-3) - 1px);grid-area:proj}.tb__sheet{grid-area:sheet;min-height:6rem}.tb__scope{grid-area:scope}.tb__contact{grid-area:contact}.tb__loc{padding-left:calc(var(--sp-3) - 1px);grid-area:loc}.tb__nav{grid-area:nav}.tb__rev{grid-area:rev}.tb__next{grid-area:next}.tb__top{justify-content:space-between;align-items:flex-end;gap:var(--sp-3);color:var(--ink);grid-area:top;text-decoration:none;display:flex}.tb__top .g{width:14px;height:14px;transition:translate var(--mod-2) var(--ease-x);margin-bottom:2px}.tb__top:is(:hover,:focus-visible){background:var(--layer-hover)}.tb__top:is(:hover,:focus-visible) .g{translate:0 -3px}.tb__k{margin:0 0 var(--sp-2);font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--dim)}.tb__v{text-wrap:balance;margin:0}.tb__v a{color:var(--ink);text-underline-offset:.25em;margin-right:var(--sp-4)}.tb__v a:hover{color:var(--signal-text)}.tb__mark{margin-right:var(--sp-3);white-space:nowrap;font-weight:600}.tb__mark span{color:var(--signal)}.tb__next .tb__v a{margin:0}.tb__sheet .tb__v{z-index:1;position:relative}.tb__nav .index-list{grid-template-columns:minmax(0,1fr);display:grid}body:not(.ad) .tb .index-list{--bl:0px;--br:0px}body:not(.ad) .tb .index-list:after{display:none}.tb .index-list a{padding:var(--sp-3) 0;grid-template-columns:3rem minmax(0,1fr) 24px}.tb .index-list .t{font-size:var(--t-h3);white-space:nowrap;grid-column:2}.tb .index-list .n{grid-column:1}.tb .index-list .go{grid-column:3;justify-self:end}.tb .index-list a:before{inset:0 calc(var(--sp-4) * -1) 0 calc(var(--sp-4) * -1)}.tb__reg{--reg:calc(var(--reg-arm) * 4 / 3);z-index:2;width:var(--reg);height:var(--reg);color:var(--ink);stroke:var(--reg-c);stroke-width:var(--reg-w);stroke-linecap:butt;pointer-events:none;transition:rotate var(--mod-2) var(--ease-x);position:absolute}.tb__reg--tl{top:calc(var(--reg) / -2 - .5px);left:calc(var(--reg) / -2 - .5px)}.tb__reg--tr{top:calc(var(--reg) / -2 - .5px);right:calc(var(--reg) / -2 + .5px)}.tb__reg--bl{bottom:calc(var(--reg) / -2 + .5px);left:calc(var(--reg) / -2 - .5px)}.tb__reg--br{bottom:calc(var(--reg) / -2 + .5px);right:calc(var(--reg) / -2 + .5px)}.tb:hover .tb__reg{rotate:90deg}@media (width>=900px){.site-end:after{content:"";z-index:-1;pointer-events:none;width:1px;top:0;bottom:0;left:calc(var(--pad) + (100% - 2 * var(--pad)) / 4 - var(--gut) / 4);left:round(nearest, calc(var(--pad) + (100% - 2 * var(--pad)) / 4 - var(--gut) / 4), 1px);background:var(--rule);position:absolute}.se__cta{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center}.se__cta>.se__k{grid-column:1/4}.se__say{grid-column:4/13}.tb{grid-template-columns:calc((100% - 17px) / 4 - var(--gut) / 4 + 9px) repeat(3, minmax(0, 1fr));grid-template-areas:"proj sheet scope contact""loc nav nav nav""rev next next top"}.tb--home{grid-template-areas:"proj sheet scope contact""loc rev next top"}.tb__sheet,.tb__scope,.tb__contact,.tb__nav,.tb__rev,.tb__next{padding-left:calc(var(--gut) / 2 - 1px)}.tb__rev{padding-left:calc(var(--sp-3) - 1px)}.tb__nav .index-list{column-gap:var(--sp-6);grid-template-columns:repeat(3,minmax(0,1fr))}.tb--home .tb__rev{padding-left:calc(var(--gut) / 2 - 1px)}}.ghost-num{font:200 clamp(5rem, 3rem + 7vw, 11rem)/.8 var(--sans);letter-spacing:-.05em;color:#0000;-webkit-text-stroke:1px color-mix(in srgb, var(--ink) 30%, transparent);pointer-events:none;user-select:none}.ghost-num--corner{right:var(--sp-3);letter-spacing:-.04em;font-size:clamp(3.5rem,2rem + 2vw,4.75rem);position:absolute;bottom:-.04em}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.ghost-num{animation:linear both fade-in-ghost view();animation-range:entry entry 70%}}}@keyframes fade-in-ghost{0%{opacity:0}}@media (width<=560px){.ghost-num:not(.ghost-num--corner){display:none}}@view-transition{navigation:auto}::view-transition-old(root){animation:vt-out var(--fast-2) var(--ease-out) both}::view-transition-new(root){animation:vt-in var(--mod-2) var(--ease-in) both}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0}}.vt-theme .mast{view-transition-name:none}.vt-theme::view-transition-old(root){animation:none}.vt-theme::view-transition-new(root){animation:vt-wipe var(--slow-1) var(--ease-x-in) both}@keyframes vt-wipe{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:no-preference){main h1,.hero .ln{animation:rise var(--slow-2) var(--ease-x-in) backwards}.hero .ln:nth-child(2){animation-delay:90ms}main h1+:is(p,.byline){animation:fade var(--slow-1) var(--ease-in) .2s backwards}}@keyframes rise{0%{clip-path:inset(0 0 100%);transform:translateY(.4em)}to{clip-path:inset(0);transform:none}}@keyframes fade{0%{opacity:0}}:is(.register>li,.difference>div,.index-list li,.belief,.cv-row,.bl-list>li,.p-contact .lines>div,.pillars__index li){background-image:linear-gradient(var(--rule), var(--rule));background-position:0 0;background-repeat:no-repeat;background-size:100% 1px}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){:is(.register>li,.difference>div,.index-list li,.belief,.cv-row,.bl-list>li,.p-contact .lines>div,.pillars__index li){animation:linear both rule-draw view();animation-range:entry entry 80%}}}@keyframes rule-draw{0%{background-size:0% 1px}}:is(.em,.po-body strong){background:linear-gradient(var(--signal), var(--signal)) 0 100% / 100% 2px no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){:is(.em,.po-body strong){animation:linear both em-line view();animation-range:entry 40% cover 45%}}}@keyframes em-line{0%{background-size:0% 2px}}.grid12{grid-template-columns:minmax(0,1fr);display:grid}@media (width>=900px){.grid12{column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr))}}:is(.p-philosophy,.p-founder,.p-work,.p-blog,.p-contact,.p-err):not(.ad) main h1{font-size:var(--t-h1);letter-spacing:-.02em;padding:clamp(32px, 6vh, 72px) max(0px, calc(100% - var(--h1w,16ch))) var(--sp-6) 0;background:var(--paper);max-width:none;margin:0;font-weight:300;line-height:1.02;position:relative}:is(.p-philosophy,.p-founder,.p-work,.p-blog,.p-contact,.p-err):not(.ad) main h1:after{content:"";left:calc(var(--sp-3) * -1);right:calc(var(--sp-3) * -1);background:var(--rule);height:1px;position:absolute;bottom:0}.p-home main{display:block}.h{min-height:min(calc(100svh - var(--mast-h) - 1px), 32rem);padding:0 calc(var(--sp-3) - 1px) var(--sp-6);margin-inline:calc(var(--sp-3) * -1 + 1px);border-bottom:1px solid var(--rule);background:var(--paper);grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-content:end;display:grid}@media (width<=899px){.h{min-height:0;padding-top:var(--sp-6)}}.hero{font-size:var(--t-display);letter-spacing:-.03em;margin:var(--sp-9) 0 var(--sp-7);grid-row:1;font-weight:200;line-height:.98}.h__foot{grid-row:2}.hero .ln{display:block}.hero b{color:var(--signal);font-weight:inherit}.h__foot{gap:var(--sp-6);align-items:end;display:grid}.h__n{font:400 clamp(3.5rem, 2rem + 5vw, 7.5rem)/.8 var(--pixel);align-self:end;margin:0}.p-home .h__who{max-width:40ch;font-size:var(--t-lead);margin:0;font-weight:300;line-height:1.4}.h__who:after{content:"";vertical-align:text-bottom;background:var(--signal);opacity:0;width:.5em;height:1.1em;margin-left:.2em;display:inline-block}@media (prefers-reduced-motion:no-preference){.h__who:after{animation:.53s step-end .7s 6 caret-blink}}@keyframes caret-blink{0%{opacity:1}50%{opacity:0}}.cue{justify-self:start;align-items:center;gap:var(--sp-3);min-height:44px;font:400 var(--t-label)/1 var(--mono);color:var(--dim);text-decoration:none;display:inline-flex}.cue:hover{color:var(--ink)}.cue svg{stroke:currentColor;fill:none;stroke-width:1.5px;width:16px;height:16px}@media (prefers-reduced-motion:no-preference){.cue svg{animation:nudge 1.6s var(--ease-x) 1.2s 3}}@keyframes nudge{50%{transform:translateY(4px)}}@media (width>=900px){.h__foot{column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr))}.h__n{grid-column:1/4}.p-home .h__who{grid-column:4/11;max-width:52ch}.cue{grid-column:12;justify-self:end}}.p-home section:not(.h){margin-top:var(--sec)}.sh{align-items:baseline;gap:var(--sp-5);margin:0 0 var(--sp-6);display:flex}.sh h2{font-size:var(--t-h2);font-weight:300;line-height:1.1}.sh .label{margin:0}.difference>div{gap:var(--sp-2) var(--gut);padding:var(--sp-4) 0 var(--sp-5);display:grid}.difference .them{color:var(--dim);font-size:var(--t-body)}.difference .us{font-size:var(--t-h3);font-weight:300;line-height:1.3}.difference{border-bottom:1px solid var(--rule)}.index-list{border-bottom:1px solid var(--rule);margin:0;padding:0;list-style:none}.index-list a{gap:var(--sp-3) var(--gut);padding:var(--sp-5) 0;isolation:isolate;grid-template-columns:3rem minmax(0,1fr) 24px;align-items:baseline;text-decoration:none;display:grid;position:relative}.index-list a:before{content:"";inset:0 calc(var(--br,var(--sp-5)) * -1) 0 calc(var(--bl,var(--sp-5)) * -1);z-index:-1;background:var(--layer-hover);transform-origin:0;transition:transform var(--mod-2) var(--ease-x-out);position:absolute;transform:scaleX(0)}.index-list .n{font:400 var(--t-small)/1 var(--mono);color:var(--dim)}.index-list .t{font-size:var(--t-h2);letter-spacing:-.01em;transition:transform var(--mod-2) var(--ease-x);font-weight:300;line-height:1.05}.index-list .d{color:var(--dim);grid-column:2}.index-list .go{translate:var(--mx,0) var(--my,0);width:24px;height:24px;transition:transform var(--mod-2) var(--ease-x), color var(--fast-2) var(--ease);grid-area:1/3;align-self:center}.index-list a:is(:hover,:focus-visible):before{transition-timing-function:var(--ease-x-in);transform:scaleX(1)}.index-list a:is(:hover,:focus-visible) .t{transform:translateX(var(--sp-3))}.index-list a:is(:hover,:focus-visible) .go{transform:translateX(var(--sp-2));color:var(--signal)}.index-list a:is(:hover,:focus-visible) .n{color:var(--signal-text)}@media (prefers-reduced-motion:no-preference){.index-list a:is(:hover,:focus-visible) .go{animation:go-pop var(--mod-2) var(--ease-x-in)}}@keyframes go-pop{0%{transform:none}55%{transform:translate(10px)}to{transform:translateX(var(--sp-2))}}@media (width>=900px){.p-home section.grid12>.sh{gap:var(--sp-4);top:var(--stick);flex-direction:column;grid-column:1/4;align-self:start;position:sticky}.p-home section.grid12>:not(.sh){grid-column:4/13}.difference>div{grid-template-columns:minmax(0,3fr) minmax(0,5fr)}.index-list a{grid-template-columns:repeat(12,minmax(0,1fr))}.index-list .n{grid-column:1}.index-list .t{grid-column:2/7}.index-list .d{grid-area:1/7/auto/12}.index-list .go{grid-column:12;justify-self:end}}:is(.p-philosophy main,.p-founder main)>section,.p-work:not(.ad) main>section{margin:var(--sec) 0 0}.p-philosophy section>h2,.p-founder section.note>h2,.p-work:not(.ad) section>.label{font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--dim);margin:0 0 var(--sp-5)}.p-philosophy section>h2{color:var(--signal-text)}@media (width>=900px){.p-philosophy main,.p-founder main,.p-work:not(.ad) main{column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr));align-content:start;display:grid}.p-philosophy main>*,.p-founder main>*,.p-work:not(.ad) main>*{grid-column:1/-1;max-width:none}.p-philosophy main h1,.p-founder main h1,.p-work:not(.ad) main h1{grid-column:1/-1}.p-work:not(.ad) main>.lede{grid-column:4/10}.p-philosophy main>section,.p-founder section.note,.p-work:not(.ad) main>section{grid-template-columns:subgrid;align-items:start;display:grid}.p-philosophy main>section>h2,.p-founder section.note>h2,.p-work:not(.ad) main>section>.label{top:var(--stick);grid-column:1/4;margin:0;padding-top:.45em;position:sticky}.p-philosophy main>section>:not(h2),.p-founder section.note>:not(h2),.p-work:not(.ad) main>section>:not(.label){grid-column:4/13}.p-philosophy main>section>:not(h2,.beliefs,.pillars__index),.p-founder section.note>:not(h2){max-width:66ch}}.p-philosophy main h1{--h1w:14ch}.p-philosophy section{font-size:var(--t-long);font-weight:300;line-height:1.5}.p-philosophy .lines p{margin:0 0 .7em}.p-philosophy .close{font-size:var(--t-h2);letter-spacing:-.01em;margin:var(--sp-6) 0;padding-left:var(--sp-6);border-left:2px solid var(--signal);font-weight:300;line-height:1.12}.pillars__index{margin:0 0 var(--sp-8);border-bottom:1px solid var(--rule);counter-reset:p;padding:0;list-style:none}.pillars__index li{counter-increment:p}.pillars__index a{gap:var(--gut);padding:var(--sp-3) 0;font-size:var(--t-h3);transition:color var(--fast-2) var(--ease);grid-template-columns:3rem minmax(0,1fr);align-items:baseline;font-weight:300;line-height:1.25;text-decoration:none;display:grid}.pillars__index a:before{content:counter(p) ".";font:400 var(--t-small)/1 var(--mono);color:var(--dim)}.pillars__index a:hover{color:var(--signal-text)}.beliefs{counter-reset:b;border-bottom:1px solid var(--rule);margin:0;padding:0;list-style:none}.belief{counter-increment:b;padding:0}.belief:before{content:counter(b, decimal-leading-zero);font:400 clamp(3rem, 2rem + 4vw, 6rem)/.8 var(--pixel);letter-spacing:-.02em;margin:0 0 var(--sp-4);display:block}.belief h3{letter-spacing:-.01em;margin:var(--sp-5) 0 var(--sp-3);max-width:28ch;font-size:clamp(1.5rem,1.2rem + 1.2vw,2.25rem);font-weight:300;line-height:1.15}.belief p{margin:0 0 var(--sp-6);max-width:64ch;font-size:var(--t-long);color:color-mix(in srgb, currentColor 86%, transparent);font-weight:400;line-height:1.55}@media (width>=900px){.p-philosophy main>section.pillars>h2{position:static}.p-philosophy main>section.pillars>.beliefs{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.belief{grid-column:1/-1;grid-template-columns:subgrid;grid-template-rows:auto 1fr;align-items:start;display:grid}.belief:before{margin:0 calc(var(--gut) / -2 + 1px) 0 calc(var(--sp-3) * -1 + 1px);padding:var(--sp-4) var(--sp-3) var(--sp-4) calc(var(--sp-3) - 1px);grid-area:1/1/span 2/4;align-self:stretch}.belief h3,.belief p{grid-column:4/12}}.register{border-bottom:1px solid var(--rule);margin:0;padding:0;list-style:none}.register>li{gap:var(--sp-2) var(--sp-6);padding:var(--sp-4) 0 var(--sp-5);grid-template-columns:3rem minmax(0,18rem) 1fr;align-items:baseline;display:grid}.register .n{font:400 var(--t-small)/1 var(--mono);color:var(--dim)}.register h3{font-size:1.25rem;font-weight:400;line-height:1.3}.register p{color:var(--dim);margin:0}@media (width<=720px){.register>li{grid-template-columns:2.5rem 1fr}.register>li>p{grid-column:2}}.tags{gap:var(--sp-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tags li{font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;padding:var(--sp-2) var(--sp-3);border:1px solid var(--rule)}.dv{gap:var(--sp-2);margin:0;display:grid}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.dv{animation:linear both dv-focus view();animation-range:cover 5% cover 95%}}}@keyframes dv-focus{0%,to{opacity:.28}40%,60%{opacity:1}}.cta__go{align-items:center;gap:var(--sp-4) var(--sp-7);flex-wrap:wrap;margin:0;display:flex}.cta-btn{min-height:56px;padding:0 var(--sp-8);background:var(--ink);color:var(--paper);font:400 var(--t-body)/1 var(--mono);transition:background-color var(--fast-2) var(--ease), color var(--fast-2) var(--ease);align-items:center;text-decoration:none;display:inline-flex}.cta-btn:hover{background:var(--signal);color:var(--c-paper)}.cta-alt{font:400 var(--t-small)/1 var(--mono);min-height:44px;color:var(--ink);text-underline-offset:.3em;align-items:center;display:inline-flex}.cta-alt:hover{color:var(--signal-text)}.p-work .prose{font-size:var(--t-lead);margin-bottom:var(--sp-6);font-weight:300;line-height:1.45}.p-founder main{counter-reset:note}.p-founder main h1:after{display:none}.p-founder section.note{font:400 var(--t-long)/1.6 var(--serif);counter-increment:note;margin:0 0 var(--sp-8)}.p-founder section.note>p:last-child{margin-bottom:0}.p-founder section.note>h2{font:400 1.25rem/1.3 var(--sans);letter-spacing:0;color:var(--ink)}.p-founder section.note>h2:before{content:counter(note, decimal-leading-zero);font:400 var(--t-label)/1 var(--mono);color:var(--signal-text);margin-bottom:var(--sp-3);display:block}.p-founder .end{font:400 var(--t-label)/1.5 var(--mono);color:var(--dim);margin-bottom:0;margin-top:var(--sp-9)}.cv__sec{margin-top:var(--sp-8);font-size:.9375rem;line-height:1.5}.cv__sec>h3{font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--dim);margin:0 0 var(--sp-5)}.cv__sec>h3 span{color:var(--signal-text);margin-right:var(--sp-3)}.cv-list{border-bottom:1px solid var(--rule);margin:0;padding:0;list-style:none}.cv-row{gap:var(--sp-2) var(--gut);padding:var(--sp-4) 0;display:grid}.cv-row .per{font:400 var(--t-label)/1.6 var(--mono);color:var(--dim);white-space:nowrap}.cv-row .ttl{margin:0;font-size:1.0625rem;font-weight:400;line-height:1.35}.cv-row .org{color:var(--dim);margin:var(--sp-1) 0 0}.cv-row ul{margin:var(--sp-3) 0 0;padding:0;list-style:none}.cv-row ul li{padding-left:var(--sp-5);margin:var(--sp-2) 0;max-width:72ch;position:relative}.cv-row ul li:before{content:"–";color:var(--dim);position:absolute;left:0}.cv-row .note{font:400 var(--t-label)/1.5 var(--mono);color:var(--dim);margin:var(--sp-2) 0 0}.cv-row cite{font-family:var(--serif);font-style:italic}.cv-row .q{font:400 var(--t-label)/1 var(--mono);color:var(--dim);margin-left:var(--sp-2);white-space:nowrap;border:1px solid;padding:2px 6px}.cv-pub .ttl{font-size:1rem}.cv-pub .au{color:var(--dim);margin:0 0 var(--sp-2)}.cv-pub .doi{margin-top:var(--sp-3);font:400 var(--t-label)/1.5 var(--mono);word-break:break-all;display:inline-block}.cv a[target=_blank]:after{content:" ↗"}.cv__sub{font:400 var(--t-label)/1 var(--mono);color:var(--dim);margin:var(--sp-6) 0 var(--sp-3)}.cv__sec .tags{margin-top:var(--sp-5)}.cv__ref{font-family:var(--serif);color:var(--dim);padding:var(--sp-5) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-style:italic}.cv__research{font:400 var(--t-long)/1.65 var(--serif);max-width:66ch}@media (width>=640px){.cv-row{grid-template-columns:minmax(7.5rem,2fr) minmax(0,6fr)}.cv-row>.per{grid-row:1/span 6}.cv-row>:not(.per){grid-column:2}}@media (width>=900px){.tabs{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.tabs__bar{grid-column:1/-1}.tabs__panel{grid-column:1/-1;grid-template-columns:subgrid;align-items:start;display:grid}.tabs__panel[hidden]{display:none}.cv__sec>h3{top:var(--stick);padding-top:var(--sp-5);grid-column:1/4;margin:0;position:sticky}.cv__sec>:not(h3){grid-column:4/13}.p-founder section.note{grid-template-columns:subgrid;grid-column:1/-1;display:grid}.p-founder .end{grid-column:4/13}}.p-contact main,.p-err main{align-content:start;display:grid}.p-contact main h1{--h1w:14ch}.p-contact .lines,.p-err .lines{margin:var(--sp-6) 0 0;border-bottom:1px solid var(--rule);max-width:48rem}.p-contact .lines>div,.p-err .lines>div{gap:var(--sp-2) var(--gut);padding:var(--sp-4) 0;grid-template-columns:9rem minmax(0,1fr);align-items:baseline;display:grid}.p-contact dt,.p-err dt{font:400 var(--t-label)/1.5 var(--mono);color:var(--dim)}.p-contact dd,.p-err dd{font-size:var(--t-h3);margin:0;font-weight:300;line-height:1.3}.p-contact dd a,.p-err dd a{color:var(--ink)}.p-contact dd a:hover,.p-err dd a:hover{color:var(--signal-text)}@media (width<=560px){.p-contact .lines>div,.p-err .lines>div{grid-template-columns:1fr}}@media (width>=900px){.p-contact main,.p-err main{column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr))}.p-contact main>*,.p-err main>*,.p-contact main h1,.p-err main h1{grid-column:1/-1}.p-contact .lines,.p-err .lines{grid-column:4/13}}.stations{margin:var(--sp-10) 0 0;border-left:1px solid var(--rule);max-width:58ch;padding:0;list-style:none}.station{padding:0 0 var(--sp-9) var(--sp-7);position:relative}.station:before{content:"";background:var(--signal);width:7px;height:7px;position:absolute;top:.55em;left:-4px}.station .n{font:400 var(--t-label)/1 var(--mono);color:var(--dim);margin-bottom:var(--sp-3);display:block}.station h2{font-size:var(--t-h3);margin:0 0 var(--sp-3);font-weight:300;line-height:1.1}.station p{color:var(--dim);max-width:44ch;margin:0}.station--loop:before{border:1px solid var(--signal);background:0 0}.station--loop h2{color:var(--signal-text)}.cadence{margin:var(--sp-10) 0 0;font:400 1rem/1.4 var(--mono);padding:0;list-style:none}.cadence li{padding:var(--sp-3) 0;border-bottom:1px solid var(--rule);max-width:34ch}.cadence-block{margin-top:var(--sec)}body.p-fac{background:var(--paper)}.p-fac.js{height:100svh;overflow:hidden}.p-fac main{min-height:0;padding:0;display:grid}.p-fac .mast{position:relative}.p-fac .nav a:not([aria-current]){opacity:.6}.p-fac .foot{border-top-color:#0000;margin-top:0}html:not(.has-js) .fac{display:none}.fac{min-height:22rem;font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(288px,24vw,360px);display:grid}.fac__prose{margin-inline:var(--pad)}.fac__stage{touch-action:pan-y;min-width:0;position:relative}.fac__stage canvas{cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.fac__stage canvas:active{cursor:grabbing}.fac canvas:focus-visible{outline:1px solid var(--signal);outline-offset:-1px}.fac__in,.fac__hint,.fac__read{color:var(--dim);margin:0;position:absolute}.fac__hint{pointer-events:none;right:var(--sp-6);bottom:var(--sp-5)}.fac__in{top:var(--sp-5);left:var(--pad);align-items:baseline;gap:.6rem;display:flex}.fac__in input{font:inherit;letter-spacing:.14em;color:var(--ink);border:0;border-bottom:1px solid var(--rule-strong);text-transform:uppercase;background:0 0;border-radius:0;width:14ch;padding:.15rem 0}.fac__in input::placeholder{color:var(--dim);letter-spacing:.1em}.fac__in input:focus{border-bottom-color:var(--signal);outline:0}.fac__read{left:var(--pad);bottom:var(--sp-5);gap:var(--sp-2);display:grid}.fac__read div{grid-template-columns:21ch auto;align-items:baseline;display:grid}.fac__read dt{color:var(--dim)}.fac__read dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:0}.fac__read b{font-weight:400}.fac__read i{font-family:var(--serif);font-size:1.1em}.fac__sub,.fac__note{color:var(--dim);margin-left:1ch}.fac__read [data-hit] dd,.fac__read [data-hit] .fac__note{color:var(--signal-text)}.fac__sheet{border-left:1px solid var(--rule);padding:var(--sp-6) var(--pad) var(--sp-5) var(--sp-6);gap:var(--sp-5);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.fac__sky{padding:var(--sp-3);border:1px solid var(--rule);background-image:linear-gradient(color-mix(in srgb, var(--ink) 5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 5%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--ink) 2.5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 2.5%, transparent) 1px, transparent 1px);background-size:40px 40px,40px 40px,8px 8px,8px 8px;margin:0;position:relative}.fac__sky canvas{aspect-ratio:1;cursor:pointer;touch-action:none;width:100%;max-width:max(200px,100svh - 480px);margin-inline:auto;display:block}.fac__sky figcaption{color:var(--dim);padding:var(--sp-3) var(--sp-2) var(--sp-2);max-width:40ch}.fac__reg{width:14px;height:14px;stroke:var(--reg-c);stroke-width:1px;pointer-events:none;position:absolute}.fac__reg--tl{top:-7.5px;left:-7.5px}.fac__reg--tr{top:-7.5px;right:-7.5px}.fac__reg--bl{bottom:-7.5px;left:-7.5px}.fac__reg--br{bottom:-7.5px;right:-7.5px}.fac__seg{border:0;flex-wrap:wrap;min-width:0;margin:0;padding:0;display:flex}.fac__seg legend{color:var(--dim);margin-bottom:var(--sp-3);padding:0}.fac__seg label{flex:auto;margin:0 -1px -1px 0;position:relative}.fac__seg--col label{flex-basis:100%}.fac__seg--col span{min-height:32px}.fac__seg input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.fac__seg span{align-items:center;gap:var(--sp-3);white-space:nowrap;min-height:40px;padding:0 var(--sp-4);border:1px solid var(--rule-strong);color:var(--dim);transition:background-color var(--fast-2) var(--ease), color var(--fast-2) var(--ease);display:flex}.fac__seg small{font-size:inherit;color:var(--dim);padding-left:var(--sp-3);margin-left:auto}.fac__knob{width:8px;height:8px;transition:background-color var(--mod-1) var(--ease-x);border:1px solid;flex:none}.fac__seg input:hover+span{background:var(--layer-hover);color:var(--ink)}.fac__seg input:checked+span{color:var(--ink)}.fac__seg input:checked+span .fac__knob{background:var(--signal);border-color:var(--signal)}.fac__seg input:focus-visible+span{outline:1px solid var(--signal);outline-offset:-4px}.fac__doy{gap:0 var(--sp-4);color:var(--dim);margin-top:calc(var(--sp-5) * -.5);grid-template-columns:1fr auto;align-items:center;display:grid}.fac__doy output{color:var(--ink);font-variant-numeric:tabular-nums;grid-area:1/2}.fac__doy input{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;grid-column:1/-1;width:100%;height:28px;margin:0}.fac__doy input::-webkit-slider-runnable-track{background:var(--rule-strong);height:1px}.fac__doy input::-moz-range-track{background:var(--rule-strong);height:1px}.fac__doy input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink);border:0;border-radius:0;width:8px;height:16px;margin-top:-7.5px}.fac__doy input::-moz-range-thumb{background:var(--ink);border:0;border-radius:0;width:8px;height:16px}.fac__doy input:focus-visible{outline:1px solid var(--signal);outline-offset:2px}.fac__tb{border-top:1px solid var(--rule-strong);color:var(--dim);font-variant-numeric:tabular-nums;flex-wrap:wrap;margin:auto 0 0;display:flex}.fac__tb span{padding:var(--sp-3) var(--sp-3) var(--sp-2) 0;margin-right:var(--sp-3);border-right:1px solid var(--rule);white-space:nowrap}.fac__tb span:first-child{color:var(--ink)}.fac__tb span:last-child{border-right:0;margin-right:0}.p-fac.js .fac__prose{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=700px),(height<=30rem){.p-fac.js{height:auto;overflow:visible}.fac{min-height:0;display:block}.fac__stage{flex-direction:column;display:flex}.fac__stage canvas{height:clamp(15rem,78vw,24rem);position:relative}.fac__read{padding:var(--sp-5) var(--pad) 0;position:static}.fac__hint{display:none}.fac__sheet{padding:var(--sp-7) var(--pad) var(--sp-6);border-left:0;overflow:visible}.fac__sky{max-width:400px}.fac__sky canvas{max-width:none}.p-fac.js .fac__prose{clip-path:none;white-space:normal;width:auto;height:auto;margin-inline:var(--pad);position:static;overflow:visible}}.p-books main{padding-bottom:0}.bk{margin-top:var(--sp-7);position:relative}.bk__card dd small{margin-top:var(--sp-3);font:400 var(--t-label)/1.5 var(--mono);color:var(--dim);display:block}html:not(.has-js) :is(.bk__stage,.bk__x){display:none}.bk>.lede{margin:var(--sp-6) 0 0}.has-js .bk{margin-inline:calc(var(--pad) * -1)}.bk__stage{border-block:1px solid var(--rule);touch-action:pan-y;cursor:grab;height:clamp(26rem,100svh - 16rem,54rem);position:relative;overflow:hidden}.bk__stage.is-drag{cursor:grabbing}.bk__stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.bk__hit{cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.bk__hit:focus-visible{outline:1px solid var(--signal);outline-offset:6px}.bk__hint{left:var(--pad);bottom:var(--sp-6);pointer-events:none;font:400 var(--t-label)/1 var(--mono);letter-spacing:.02em;color:var(--dim);transition:opacity var(--mod-2) var(--ease);margin:0;position:absolute}.bk.is-open .bk__hint{opacity:0}.bk__reg{width:14px;height:14px;stroke:var(--reg-c);stroke-width:1px;pointer-events:none;position:absolute}.bk__reg--tl{top:var(--sp-5);left:var(--sp-5)}.bk__reg--tr{top:var(--sp-5);right:var(--sp-5)}.bk__reg--bl{bottom:var(--sp-5);left:var(--sp-5)}.bk__reg--br{bottom:var(--sp-5);right:var(--sp-5)}.has-js .bk__card:not(.is-open){display:none}.has-js .bk .lines{max-width:none;margin:0}.has-js .bk .lines>div{padding:var(--sp-5) 0;grid-template-columns:minmax(0,1fr)}.has-js .bk dt{color:var(--signal-text)}.has-js .bk dd{font-size:var(--t-h3)}.bk__x{margin-top:var(--sp-6);padding:var(--sp-3) var(--sp-4);gap:var(--sp-4);font:400 var(--t-label)/1 var(--mono);letter-spacing:.02em;color:var(--ink);border:1px solid var(--rule-strong);cursor:pointer;transition:border-color var(--fast-2) var(--ease);background:0 0;align-items:baseline;display:inline-flex}.bk__x>span[aria-hidden]{color:var(--dim)}.bk__x:is(:hover,:focus-visible){border-color:var(--signal);outline:none}@media (width>=900px){.has-js .bk{margin-top:0}.has-js .bk>.lede{z-index:1;top:var(--sp-7);left:var(--pad);pointer-events:none;max-width:24ch;margin:0;position:absolute}.has-js .bk__panel{top:50%;right:calc(var(--pad) + var(--sp-6));width:min(22rem,28vw);transition:opacity var(--mod-2) var(--ease), transform var(--mod-2) var(--ease-x-in);position:absolute;transform:translateY(-50%)}.has-js .bk:not(.is-open) .bk__panel{opacity:0;visibility:hidden;transform:translate(var(--sp-5), -50%)}}@media (width<=899px){.bk__stage{height:clamp(22rem,116vw,34rem)}.has-js .bk>.lede{margin:var(--sp-6) var(--pad)}.bk__hint{left:44px;bottom:var(--sp-5)}.has-js .bk__panel{padding:var(--sp-5) var(--pad) var(--sp-7)}.has-js .bk:not(.is-open) .bk__panel{display:none}}@media (prefers-reduced-motion:reduce){.has-js .bk__panel{transition:none}}.p-blog main,.p-post main{width:100%}.p-blog main>*{min-width:0}.bl-head{row-gap:var(--sp-5);padding-bottom:var(--sp-7);display:grid;position:relative}.bl-head:after{content:"";left:calc(var(--sp-3) * -1);right:calc(var(--sp-3) * -1);background:var(--rule);height:1px;position:absolute;bottom:0}.p-blog:not(.ad) main .bl-head h1{background:0 0;padding:clamp(32px,6vh,72px) 0 0}.p-blog:not(.ad) main .bl-head h1:after{display:none}.bl-head .lede{margin:0}.bl-count{font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--dim);align-self:end;margin:0}.bl-search{gap:var(--sp-2);margin:0;display:grid}.bl-search__l{align-items:center;gap:var(--sp-3);width:max-content;font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--dim);display:inline-flex}.bl-search__l .g{color:var(--signal)}.bl-search__f{align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--rule-strong);transition:border-color var(--fast-2) var(--ease);display:flex;position:relative}.bl-search__f:focus-within{border-bottom-color:var(--signal);box-shadow:0 1px 0 var(--signal)}.bl-search input{min-width:0;min-height:48px;color:inherit;font:300 var(--t-h3)/1.2 var(--sans);letter-spacing:0;-webkit-appearance:none;appearance:none;background:0 0;border:0;border-radius:0;outline:none;flex:1;padding:0}.bl-search input::placeholder{color:var(--dim);opacity:1}.bl-search input::-webkit-search-cancel-button{display:none}.bl-clear{min-height:32px;padding:0 var(--sp-3);font:400 var(--t-label)/1 var(--mono);color:var(--dim);border:1px solid var(--rule);flex:none;align-items:center;text-decoration:none;display:inline-flex}.bl-clear[hidden]{display:none}.bl-clear:is(:hover,:focus-visible){color:var(--ink);border-color:currentColor}.bl-clear:focus-visible,.bl-tag:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.bl-kwl{font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--dim);margin:0}.bl-tags{gap:var(--sp-3);flex-wrap:wrap;display:flex}.bl-tag{padding:4px var(--sp-3);font:500 .75rem/1.2 var(--sans);letter-spacing:.04em;border:1px solid var(--rule);color:var(--ink);transition:border-color var(--fast-2) var(--ease), background-color var(--fast-2) var(--ease);align-items:center;gap:1px;text-decoration:none;list-style:none;display:inline-flex}.bl-tag i{color:var(--dim);font-style:normal;font-weight:400}a.bl-tag{min-height:32px;padding-inline:var(--sp-4)}a.bl-tag:hover{border-color:currentColor}a.bl-tag[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink)}a.bl-tag[aria-current] i{color:inherit;opacity:.6}.bl-kw{gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.bl-mono,.bl-date{font:400 var(--t-label)/1.5 var(--mono);letter-spacing:.02em;color:var(--dim);margin:0}.bl-au{font:italic 400 1rem/1.4 var(--serif);letter-spacing:0}.bl-empty{justify-items:start;gap:var(--sp-4);padding:var(--sp-10) 0;color:var(--dim);border-top:0;display:grid}.bl-empty[hidden]{display:none}.bl-empty p{max-width:46ch;font:300 var(--t-h3)/1.35 var(--sans);color:var(--ink);margin:0}.bl-empty__g{stroke-width:1px;width:48px;height:48px;color:var(--signal)}.bl-lead__link{gap:var(--sp-6) var(--gut);padding:var(--sp-7) 0 var(--sp-8);grid-template-columns:minmax(0,1fr);align-items:start;text-decoration:none;display:grid}.bl-lead__no{gap:var(--sp-3);align-content:start;min-width:0;display:grid}.bl-no{font:400 clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem)/1 var(--pixel);letter-spacing:.02em;margin:0}.bl-latest{align-items:center;gap:var(--sp-2);font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--signal-text);margin:0;display:flex}.bl-latest .g{width:12px;height:12px;stroke:var(--signal)}.bl-lead{box-shadow:inset 0 2px 0 var(--signal)}.bl-lead .ghost-num{font-size:clamp(4.5rem,2rem + 6.2vw,9rem);animation:none;display:block}.bl-lead__text{gap:var(--sp-5);align-content:start;min-width:0;display:grid}.bl-lead h2{font-size:var(--t-h2);letter-spacing:-.01em;font-weight:300;line-height:1.08}.bl-lead__dek{font:400 1.0625rem/1.55 var(--sans);color:var(--dim);max-width:60ch;margin:0}.bl-lead__link:is(:hover,:focus-visible) h2{text-underline-offset:.18em;text-decoration:underline 1px}.bl-next{align-items:baseline;gap:var(--sp-3) var(--sp-6);padding:var(--sp-6) 0 var(--sp-7);border-top:1px dashed var(--rule-strong);color:var(--dim);font:400 var(--t-label)/1.5 var(--mono);flex-wrap:wrap;margin:0;display:flex}.bl-next .px{font-size:.75rem}@media (width>=900px){.p-blog main{column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr));align-content:start;display:grid}.p-blog main>*{grid-column:1/-1}.bl-head{grid-template-columns:subgrid;align-items:start}.bl-head>*{grid-column:4/13}.bl-head>h1{grid-area:1/1/auto/4;padding-right:0}.bl-head>.lede{grid-row:1;align-self:end}.bl-head>.bl-count{padding-bottom:var(--sp-3);grid-area:2/1/auto/4;align-self:end}.bl-head>.bl-search{grid-row:2}.bl-head>.bl-kwl{grid-area:3/1/auto/4;align-self:center}.bl-head>.bl-tags{grid-row:3}.bl-lead__link{grid-template-columns:repeat(12,minmax(0,1fr))}.bl-lead__no{grid-area:1/1/span 2/4}.bl-lead__link>.cov{grid-area:1/10/auto/13}.bl-lead__text{grid-area:1/4/span 2/10}.bl-lead__link>:is(.bl-by,.bl-go){grid-row:1}.bl-lead__link:has(>.cov)>:is(.bl-by,.bl-go){grid-row:2}}@media (width<=899px){.bl-head>.bl-count{order:2}.bl-head>.bl-search{order:3}.bl-head>.bl-kwl{display:none}.bl-head>.bl-tags{order:5}}.cov{background:var(--layer);display:block;position:relative;overflow:hidden}.cov img{object-fit:cover;width:100%;height:100%;display:block}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.cov img{animation:cov-colour var(--slow-1) linear both;animation-timeline:view();animation-range:entry 40% cover 45%}:is(a:hover,a:focus-visible)>.cov img{filter:none!important}}}@keyframes cov-colour{0%{filter:grayscale()}}.cov .cov-d,html[data-theme=dark] .cov:has(.cov-d) img:not(.cov-d){display:none}html[data-theme=dark] .cov .cov-d{display:block}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .cov:has(.cov-d) img:not(.cov-d){display:none}html:not([data-theme=light]) .cov .cov-d{display:block}}.bl-lead .cov{aspect-ratio:16/10}@media (width>=900px){.bl-lead .cov{aspect-ratio:4/3}}.bl-lead{border-top:0}#bl:not([data-searching]) .bl-list>li[data-dup],#bl[data-searching] .bl-lead,#bl:not([data-searching]) .bl-list:not(:has(>li:not([data-dup]))){display:none}.bl-list{border-bottom:0;margin:0;padding:0;list-style:none}.bl-list li[hidden]{display:none}.bl-list a{isolation:isolate;gap:var(--sp-3) var(--gut);padding:var(--sp-6) 0;grid-template-columns:minmax(0,1fr);align-items:start;text-decoration:none;display:grid;position:relative}.bl-list a:before{content:"";inset:0 calc(var(--br,var(--sp-5)) * -1) 0 calc(var(--bl,var(--sp-5)) * -1);z-index:-1;background:var(--layer-hover);transform-origin:0;transition:transform var(--mod-2) var(--ease-x-out);position:absolute;transform:scaleX(0)}.bl-list a:is(:hover,:focus-visible):before{transition-timing-function:var(--ease-x-in);transform:scaleX(1)}.bl-rn{align-items:baseline;gap:var(--sp-5);margin:0;display:flex}.bl-list .bl-n{letter-spacing:0;font-size:clamp(1.25rem,1rem + 1vw,1.75rem);line-height:1}.bl-rb{gap:var(--sp-4);align-content:start;min-width:0;display:grid}.bl-list h3{font-size:var(--t-h3);font-weight:300;line-height:1.2}.bl-ex{color:var(--dim);max-width:60ch;margin:0}.bl-by{gap:var(--sp-1);align-content:start;min-width:0;margin:0;display:grid}.bl-go{display:none}@media (width>=900px){.bl-list a{grid-template-columns:repeat(12,minmax(0,1fr))}.bl-rn{align-items:flex-start;gap:var(--sp-3);flex-direction:column;grid-column:1/4}.bl-rb{grid-column:4/10}.bl-by{grid-column:10/12}.bl-go{color:var(--dim);grid-column:12;justify-self:end;font-size:1.25rem;display:block}}.p-post .po{font-family:var(--serif)}.po-head{padding-top:var(--sp-9)}.po-tags,.po-meta,.po-foot{font:400 var(--t-label)/1.5 var(--mono);letter-spacing:.02em}.po-meta a,.po-foot a{color:var(--dim)}.po-meta a:hover,.po-foot a:hover{color:var(--ink)}.po-tags{gap:var(--sp-1) var(--sp-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.po-spec{margin:0 0 var(--sp-7);border-top:1px solid var(--rule-strong)}.po-spec>div{gap:var(--sp-1);padding:var(--sp-3) 0;border-bottom:1px solid var(--rule);display:grid}.po-spec dt{font:400 var(--t-label)/1.33 var(--mono);color:var(--dim)}.po-spec dd{font:400 var(--t-small)/1.45 var(--mono);margin:0}.po-spec .po-au{font:italic 300 1.0625rem/1.35 var(--serif)}.po-spec dd a{color:var(--ink)}.po-tags a{color:var(--signal-text);text-decoration:none}.po-tags a:hover{text-underline-offset:.2em;text-decoration:underline}.p-post main h1{font:300 clamp(2rem, 1.3rem + 3.6vw, 5rem)/1.04 var(--sans);letter-spacing:-.02em;margin:0 0 var(--sp-6)}.po-dek{font-size:var(--t-lead);color:var(--dim);margin:0 0 var(--sp-6);line-height:1.45}.po-meta{color:var(--dim);padding-bottom:var(--sp-6);border-bottom:1px solid var(--rule);margin:0}.po-cover{width:100%;margin:var(--sp-7) 0 0;aspect-ratio:16/9;object-fit:cover;display:block}.po-cover img{width:100%;height:100%}.po-body{font-size:var(--t-long);margin-top:var(--sp-8);overflow-wrap:break-word;line-height:1.75}.po-body>*{max-width:65ch}.po-body p{margin:0 0 1.25em}.po-body h2,.po-body h3,.po-body h4{font-family:var(--sans);scroll-margin-top:var(--stick)}.po-body h2{margin:2.4em 0 .7em;font-size:1.75rem;font-weight:300;line-height:1.2}.po-body h2:before{content:"+ ";color:var(--signal)}.po-body h3{margin:2em 0 .5em;font-size:1.25rem;font-weight:600;line-height:1.3}.po-body h4{margin:1.6em 0 .4em;font-size:1rem;font-weight:600}.po-body a{text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:var(--signal);transition:color var(--fast-2) var(--ease)}.po-body a:hover{color:var(--signal-text)}.po-body ul,.po-body ol{margin:0 0 1.25em;padding-left:1.4em}.po-body li{margin:.35em 0;padding-left:.2em}.po-body li::marker{color:var(--signal)}.po-body blockquote{padding:0 0 0 var(--sp-6);border-left:2px solid var(--signal);font:300 1.4em/1.35 var(--sans);margin:2em 0}.po-body blockquote p:last-child{margin-bottom:0}.po-body hr{text-align:center;color:var(--dim);border:0;margin:3em auto}.po-body hr:after{content:"+";color:var(--signal);font-family:var(--mono)}.po-body code{font-family:var(--mono);background:var(--layer-hover);padding:.1em .35em;font-size:.86em}.po-body pre{max-width:none;padding:var(--sp-5) var(--sp-6);background:var(--layer);border-left:2px solid var(--rule-strong);tab-size:2;margin:1.8em 0;font-size:.875rem;line-height:1.6;overflow-x:auto}.po-body pre code{font-size:inherit;background:0 0;padding:0}.po-body img{max-width:100%;height:auto;margin:2em 0;display:block}.po-body p:has(>img:only-child){max-width:none}.po-body table{border-collapse:collapse;max-width:100%;font:400 .9375rem/1.45 var(--sans);margin:1.8em 0;display:block;overflow-x:auto}.po-body th,.po-body td{padding:var(--sp-4) var(--sp-5) var(--sp-4) 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}.po-body th{font:400 var(--t-label)/1.33 var(--mono);color:var(--dim);border-bottom-color:currentColor}.po-foot{margin-top:var(--sp-9);padding-top:var(--sp-6);border-top:1px solid var(--rule);gap:var(--sp-6);display:grid}.po-pn{gap:var(--sp-6);grid-template-columns:1fr 1fr;display:grid}.po-pn a{gap:var(--sp-2);font:300 1.125rem/1.3 var(--sans);color:var(--ink);text-decoration:none;display:grid}.po-pn span{font:400 var(--t-label)/1.33 var(--mono);color:var(--dim)}.po-older{text-align:right;grid-column:2}.po-newer{grid-column:1}.po-pn a:hover{text-underline-offset:.2em;text-decoration:underline 1px}@media (width<=560px){.po-pn{grid-template-columns:1fr}.po-older,.po-newer{text-align:left;grid-column:1}}@media (width>=900px){.p-post:not(.ad) .po{column-gap:var(--gut);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.p-post:not(.ad) .po-head{display:contents}.p-post:not(.ad) main h1{margin:0 calc(var(--sp-3) * -1 + 1px) var(--sp-8);padding:var(--sp-9) calc(var(--sp-3) - 1px) var(--sp-8);z-index:1;background:var(--paper);border-bottom:1px solid var(--rule-strong);grid-area:1/1/auto/-1;position:relative}.p-post:not(.ad) main h1>*{max-width:18em}.p-post:not(.ad) .po-side{top:var(--stick);grid-area:2/1/6/4;align-self:start;position:sticky}.p-post:not(.ad) .po-spec{margin-left:calc(var(--sp-3) * -1);margin-right:calc(var(--gut) / -2 - 1px)}.p-post:not(.ad) .po-spec>div{padding-inline:var(--sp-3) calc(var(--gut) / 2)}.p-post:not(.ad) .po-dek{grid-area:2/4/auto/13;max-width:60ch}.p-post:not(.ad) .po-cover{grid-area:3/4/auto/13;margin-top:0}.p-post:not(.ad) .po-body{grid-area:4/4/auto/13}.p-post:not(.ad) .po-foot{grid-area:5/4/auto/13}}.it{font-family:var(--italic);letter-spacing:-.01em;font-style:italic;font-weight:300}.px{font-family:var(--pixel);letter-spacing:0;font-weight:400}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.index-list .n,.register .n,.toc a span,.cv__sec>h3>span:first-child,.pillars__index a:before,.p-founder section.note>h2:before,.bl-date{font-family:var(--pixel);letter-spacing:.02em;font-size:.75rem}.p-founder section.note>h2:before{font-size:1rem}.gl{display:inline-block;position:relative}.gl:after{content:attr(data-text);content:attr(data-text) / "";pointer-events:none;opacity:0;position:absolute;inset:0}.gl:has(>.it):after{font-family:var(--italic);letter-spacing:-.01em;font-style:italic;font-weight:300}@media (prefers-reduced-motion:no-preference){.gl:hover:after,:is(a,button):is(:hover,:focus-visible) .gl:after{animation:.34s step-end both gl-slice}.gl.is-slice:after{animation:.12s steps(2,end) both gl-slice}}.gl.is-src{color:#0000}.gl>.src{height:100%;width:var(--w,100%);white-space:nowrap;pointer-events:none;font-family:var(--mono);font-size:1em;line-height:inherit;letter-spacing:0;text-transform:none;color:color-mix(in srgb, var(--ink) 64%, transparent);align-items:center;font-style:normal;display:flex;position:absolute;top:0;left:0;overflow:clip}.gl>.src i{color:var(--signal-text);font-style:normal}.gl>.src.big i{color:inherit;text-decoration:underline 1px var(--signal-text);text-underline-offset:.12em}.gl>.src-clone{white-space:nowrap;pointer-events:none;color:var(--ink);position:absolute;top:0;left:0}.gl>.src-line{background:var(--signal);pointer-events:none;height:1px;position:absolute;left:0;right:0}.gl.is-src+b{opacity:0}@keyframes gl-slice{0%{opacity:1;color:var(--ink);background:var(--paper);clip-path:inset(40% 0 38%);transform:translate(.06em)}25%{clip-path:inset(12% 0 70%);transform:translate(-.05em)}50%{clip-path:inset(64% 0 14%);transform:translate(.03em)}75%{clip-path:inset(22% 0 60%);transform:translate(-.07em)}to{opacity:0}}.h{position:relative}.rail{top:var(--sp-9);right:calc(var(--pad) * -1 + var(--sp-4) + var(--sp-3) - 1px);writing-mode:vertical-rl;font:400 var(--t-label)/1 var(--mono);letter-spacing:.04em;color:var(--dim);margin:0;position:absolute}@media (width<=899px){.rail{display:none}}.kin{display:none}@media (width>=900px){.kin{margin:var(--sp-7) 0 0 calc(var(--pad) * -1);font:400 clamp(5rem, 2.5rem + 6vw, 9rem)/.8 var(--pixel);color:var(--signal);display:grid}.kin span{opacity:0;clip-path:inset(0 0 100%);transition:clip-path var(--mod-2) steps(4, end), opacity 0s linear var(--mod-2);grid-area:1/1}.idx:has(li:first-child a:is(:hover,:focus-visible)) .kin span:first-child,.idx:has(li:nth-child(2) a:is(:hover,:focus-visible)) .kin span:nth-child(2),.idx:has(li:nth-child(3) a:is(:hover,:focus-visible)) .kin span:nth-child(3),.idx:has(li:nth-child(4) a:is(:hover,:focus-visible)) .kin span:nth-child(4),.idx:has(li:nth-child(5) a:is(:hover,:focus-visible)) .kin span:nth-child(5),.idx:has(li:nth-child(6) a:is(:hover,:focus-visible)) .kin span:nth-child(6),.idx:has(li:nth-child(7) a:is(:hover,:focus-visible)) .kin span:nth-child(7),.idx:has(li:nth-child(8) a:is(:hover,:focus-visible)) .kin span:nth-child(8),.idx:has(li:nth-child(9) a:is(:hover,:focus-visible)) .kin span:nth-child(9),.idx:has(li:nth-child(10) a:is(:hover,:focus-visible)) .kin span:nth-child(10),.idx:has(li:nth-child(11) a:is(:hover,:focus-visible)) .kin span:nth-child(11),.idx:has(li:nth-child(12) a:is(:hover,:focus-visible)) .kin span:nth-child(12){opacity:1;clip-path:inset(0);transition:clip-path var(--mod-2) steps(4, end), opacity 0s}@media (prefers-reduced-motion:no-preference){.idx:has(li:first-child a:is(:hover,:focus-visible)) .kin span:first-child,.idx:has(li:nth-child(2) a:is(:hover,:focus-visible)) .kin span:nth-child(2),.idx:has(li:nth-child(3) a:is(:hover,:focus-visible)) .kin span:nth-child(3),.idx:has(li:nth-child(4) a:is(:hover,:focus-visible)) .kin span:nth-child(4),.idx:has(li:nth-child(5) a:is(:hover,:focus-visible)) .kin span:nth-child(5),.idx:has(li:nth-child(6) a:is(:hover,:focus-visible)) .kin span:nth-child(6),.idx:has(li:nth-child(7) a:is(:hover,:focus-visible)) .kin span:nth-child(7),.idx:has(li:nth-child(8) a:is(:hover,:focus-visible)) .kin span:nth-child(8),.idx:has(li:nth-child(9) a:is(:hover,:focus-visible)) .kin span:nth-child(9),.idx:has(li:nth-child(10) a:is(:hover,:focus-visible)) .kin span:nth-child(10),.idx:has(li:nth-child(11) a:is(:hover,:focus-visible)) .kin span:nth-child(11),.idx:has(li:nth-child(12) a:is(:hover,:focus-visible)) .kin span:nth-child(12){animation:kin-in var(--slow-1) var(--ease-x-in) both}}}@keyframes kin-in{0%{transform:translateY(32%)}to{transform:none}}@media (width>=900px){.p-philosophy main>section.pillars>h2{font:200 var(--t-h1)/1 var(--sans);letter-spacing:-.02em;color:var(--ink);padding:var(--sp-4) calc(var(--sp-3) - 1px) var(--sp-5);margin:0 calc(var(--sp-3) * -1 + 1px);border-top:1px solid var(--rule);background:var(--paper);grid-column:1/-1;position:relative;top:auto}.p-philosophy main>section.pillars>.pillars__index{grid-column:7/13}}.svc-list>li{padding:0;display:block}.svc__head{gap:var(--sp-2) var(--sp-6);padding:var(--sp-4) 0 var(--sp-5);grid-template-columns:3rem minmax(0,18rem) minmax(0,1fr) auto;align-items:baseline;display:grid}.svc__head h3{grid-area:1/2;margin:0}.svc__head>p{grid-area:1/3/span 2;align-self:start}.svc__head>.n{grid-row:1}summary.svc__head{cursor:pointer;list-style:none;position:relative}summary.svc__head::-webkit-details-marker{display:none}.svc__chip{place-self:start;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-4);font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;color:var(--signal-text);transition:background-color var(--fast-2) var(--ease), color var(--fast-2) var(--ease), border-color var(--fast-2) var(--ease);border:1px solid;grid-area:2/2;display:inline-flex}.svc__t--open,details[open] .svc__t--shut{display:none}details[open] .svc__t--open{display:inline}.svc__ar{width:12px;height:12px;transition:rotate var(--mod-2) var(--ease-x)}details[open] .svc__ar{rotate:180deg}.svc__meta{grid-area:1/4;place-self:center end;display:inline-flex}.svc__meta .pm{border:1px solid var(--rule-strong);width:32px;height:32px;transition:rotate var(--mod-2) var(--ease-x), background-color var(--fast-2) var(--ease), color var(--fast-2) var(--ease);flex:none;padding:9px}summary.svc__head .n,summary.svc__head h3{transition:color var(--fast-2) var(--ease), transform var(--mod-2) var(--ease-x)}summary.svc__head:is(:hover,:focus-visible) .n{color:var(--signal-text)}summary.svc__head:is(:hover,:focus-visible) h3{transform:translateX(var(--sp-2))}summary.svc__head:is(:hover,:focus-visible) .svc__chip{background:var(--signal-text);border-color:var(--signal-text);color:var(--paper)}summary.svc__head:is(:hover,:focus-visible) .pm{background:var(--ink);color:var(--paper);border-color:var(--ink);rotate:90deg}details[open]>summary.svc__head:is(:hover,:focus-visible) .pm{rotate:0deg}summary.svc__head:focus-visible{outline-offset:-2px}.svc-list>li{isolation:isolate;position:relative}.svc-list>li:before{content:"";z-index:-1;inset:0 calc(var(--br,var(--sp-3)) * -1) 0 calc(var(--bl,var(--sp-3)) * -1);background:var(--layer-hover);opacity:0;pointer-events:none;transition:opacity var(--fast-2) var(--ease);position:absolute}.svc-list>li:has(>details>summary:is(:hover,:focus-visible)):before{opacity:1}@media (prefers-reduced-motion:no-preference){.svc__chip.is-ping{animation:chip-ping .9s var(--ease-x-in) 1}}@keyframes chip-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--signal) 55%, transparent)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}.svc__body{padding:var(--sp-5) 0 var(--sp-9) calc(3rem + var(--sp-6))}details.svc__row{interpolate-size:allow-keywords}@supports selector(::details-content){details.svc__row::details-content{block-size:0;transition:block-size var(--mod-2) var(--ease-x), content-visibility var(--mod-2) allow-discrete;overflow:clip}details.svc__row[open]::details-content{block-size:auto}}@media (width<=720px){.svc__head{grid-template-columns:2.5rem minmax(0,1fr) auto}.svc__head>p{grid-area:3/2/auto/-1}.svc__meta{grid-area:1/3/span 2}.svc__body{padding-left:0}}.case+.case{margin-top:var(--sp-10)}.case__title{font:300 var(--t-h2)/1.08 var(--sans);letter-spacing:-.02em;margin:0 0 var(--sp-5);max-width:18ch}.case__lede{font-size:var(--t-lead);max-width:46ch;color:var(--dim);margin:0 0 var(--sp-7);font-weight:300;line-height:1.45}.case__pts{margin-top:var(--sp-7)}.case__more{margin:var(--sp-5) 0 0;font-family:var(--mono)}.case__more[hidden]{display:none}.case__fig{margin:0}.case__fig+.case__fig{margin-top:var(--sp-5)}.case__fig img{background:var(--layer);width:100%;height:auto;display:block}.case__fig figcaption{margin-top:var(--sp-3);font:400 var(--t-label)/1.4 var(--mono);letter-spacing:.02em;color:var(--dim)}.cmp{margin:0}.cmp__frame{aspect-ratio:1600/824;background:var(--layer);touch-action:pan-y;position:relative;overflow:hidden}.cmp__frame img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.cmp__top{clip-path:inset(0 0 0 var(--pos))}.cmp__line{top:0;bottom:0;left:var(--pos);background:var(--c-paper);pointer-events:none;width:1px;position:absolute;box-shadow:0 0 0 .5px #00000040}.cmp__line:after{content:"↔";width:44px;height:44px;font:400 var(--t-small)/1 var(--mono);color:var(--c-ink);background:var(--c-paper);transition:scale var(--mod-1) var(--ease);place-items:center;display:grid;position:absolute;top:50%;left:0;translate:-50% -50%}.cmp:hover .cmp__line:after,.cmp__range:focus-visible~.cmp__line:after{scale:1.12}.cmp__range{opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.cmp__range:focus-visible{opacity:0}.cmp:has(.cmp__range:focus-visible) .cmp__frame{outline:2px solid var(--signal);outline-offset:3px}.cmp figcaption{justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-3);font:400 var(--t-label)/1.4 var(--mono);color:var(--dim);display:flex}.p-work:not(.ad) main>section>.ghost-num{display:none}@media (width>=900px){.p-work:not(.ad) main>section:has(>.ghost-num)>:not(.label,.ghost-num){grid-row:1/span 2}.p-work:not(.ad) main>section>.ghost-num{top:calc(var(--stick) + 3rem);margin:var(--sp-6) 0 0;grid-area:2/1/auto/4;display:block;position:sticky;overflow:hidden}}.p-founder main>section.open{margin-top:var(--sec)}.p-founder .who{margin-top:0}.who__bar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.who__bar a{gap:var(--sp-2);padding:var(--sp-5);background:var(--paper);border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule);min-height:44px;transition:background-color var(--fast-2) var(--ease);align-content:start;text-decoration:none;display:grid;position:relative;overflow:hidden}.who__bar a+a{border-left:1px solid var(--rule)}.who__bar a{min-height:7.25rem}.who__bar .ghost-num--corner{bottom:.12em}.note__photo{margin:0 0 var(--sp-6);max-width:14rem}.note__photo img{aspect-ratio:4/5;object-fit:cover;filter:grayscale();border:1px solid var(--rule);width:100%;height:auto;display:block}@media (width>=900px){.p-founder section.note>h2{grid-row:1}.p-founder section.note:has(>.note__photo)>h2{position:static}.p-founder section.note>.note__photo{margin:calc(3.1875rem + var(--sp-3) + var(--sp-5)) var(--gut) 0 0;grid-area:1/1/span 3/4;align-self:start;max-width:11rem}}.who__more{align-content:space-between;justify-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-4);color:var(--dim);border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule);border-left:1px solid var(--rule);background-image:linear-gradient(color-mix(in srgb, var(--ink) 4%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 4%, transparent) 1px, transparent 1px);background-size:8px 8px;min-height:3rem;text-decoration:none;display:grid;position:relative}.who__moreK{font:400 var(--t-label)/1.33 var(--mono);letter-spacing:.02em;justify-self:start}.who__more .g{width:3.5rem;height:3.5rem;stroke:color-mix(in srgb, var(--ink) 55%, transparent);stroke-width:1.5px;transition:rotate var(--mod-2) var(--ease-x), stroke var(--fast-2) var(--ease)}.who__more:is(:hover,:focus-visible){color:var(--ink)}.who__more:is(:hover,:focus-visible) .g{stroke:var(--signal);rotate:90deg}@media (width<=899px){.who__more{min-height:3rem;padding:var(--sp-3) var(--sp-5);border-left:0;grid-auto-flow:column;place-content:center space-between}.who__more .g{width:1.5rem;height:1.5rem}}.who__bar a:hover{background:var(--layer-hover)}.who__bar a:after{content:"";background:var(--signal);transform-origin:0;height:2px;transition:transform var(--mod-2) var(--ease-x);position:absolute;top:-1px;left:0;right:0;transform:scaleX(0)}.who__bar a[aria-selected=true]{background:var(--layer)}.who__bar a[aria-selected=true]:after{transform:scaleX(1)}.who__name{font:300 clamp(1.375rem, 1rem + 1.2vw, 2rem)/1.1 var(--sans);letter-spacing:-.02em;overflow-wrap:anywhere}.who__role{font:400 var(--t-label)/1.5 var(--mono);color:var(--dim)}.who__bar a[aria-selected=true] .who__role{color:var(--signal-text)}.who__tag{font:400 var(--t-label)/1.5 var(--mono);color:var(--dim)}.pp__meta{font:400 var(--t-label)/1.6 var(--mono);color:var(--dim);margin:0}.pp__about h2{font:300 var(--t-h2)/1.08 var(--sans);letter-spacing:-.02em;margin:0 0 var(--sp-3)}.pp__about .vi{font:400 1.125rem/1.3 var(--sans);margin:0 0 var(--sp-5)}.pp__role{font-size:var(--t-lead);max-width:40ch;font-weight:300;line-height:1.4}.soon{margin-top:var(--sp-7);padding:var(--sp-7) var(--sp-6);border:1px dashed var(--rule-strong);max-width:52ch;position:relative}.soon__t{font:300 var(--t-h3)/1.2 var(--sans);margin:0 0 var(--sp-3)}.soon__d{color:var(--dim)}.soon .tags{margin-top:var(--sp-5)}.soon .tags li{color:var(--dim);border-style:dashed}@media (width>=900px){.who{grid-template-columns:subgrid;grid-column:1/-1;display:grid}.who__bar{grid-column:1/12;grid-template-columns:subgrid;display:grid}.who__bar a:first-child{margin:0 calc(var(--gut) / -2) 0 calc(var(--sp-3) * -1 + 1px);padding-left:calc(var(--sp-3) - 1px);grid-column:1/7}.who__bar a:nth-child(2){margin:0 calc(var(--gut) / -2) 0 calc(var(--gut) / -2);grid-column:7/12}.who__more{margin:0 calc(var(--sp-3) * -1) 0 calc(var(--gut) / -2);grid-area:1/12/auto/13}.tabs__panel.pp{grid-template-columns:subgrid;grid-column:1/-1;align-items:start;display:grid}.tabs__panel.pp[hidden]{display:none}.pp>.tabs{grid-column:1/-1}.pp__about{grid-column:4/13;display:block}.pp__about h2{margin-top:0}}.open{isolation:isolate;position:relative}.open>div{background:var(--layer);border-left:2px solid var(--signal);padding:var(--sp-6);position:relative}.open h2{font:300 var(--t-h2)/1.08 var(--sans);letter-spacing:-.02em;margin:0 0 var(--sp-4)}.open>div p{max-width:52ch;font-size:var(--t-lead);font-weight:300;line-height:1.45}.open__go{align-items:center;gap:var(--sp-3) var(--sp-6);margin:var(--sp-6) 0 0;flex-wrap:wrap;display:flex}.open .btn{min-height:48px;padding:0 var(--sp-6);background:var(--ink);color:var(--paper);font:400 var(--t-small)/1 var(--mono);transition:background var(--fast-2) var(--ease);align-items:center;text-decoration:none;display:inline-flex}.open .btn:hover{background:var(--signal);color:var(--c-paper)}.open .alt{font:400 var(--t-small)/1 var(--mono);align-items:center;min-height:44px;display:inline-flex}@media (width>=900px){.people,.open{grid-template-columns:subgrid;grid-column:1/-1;align-items:start;display:grid}.people>.label,.open>.label{grid-column:1/4}.people>:not(.label),.open>div{grid-column:4/13}.people{row-gap:0}.people .label{padding-top:var(--sp-6);margin-top:0}.people .person{padding-top:var(--sp-4)}.people .label:first-child{padding-top:0}}.tabs{margin-top:0}.tabs__bar{gap:0 var(--sp-6);border-bottom:1px solid var(--rule);flex-wrap:wrap;display:flex;position:relative}@media (width>=900px){.tabs__bar{padding-left:calc(25% + var(--gut) / 4 + var(--sp-3))!important}}.tabs__bar a{min-height:48px;font:400 var(--t-small)/1 var(--mono);color:var(--dim);transition:color var(--fast-2) var(--ease);align-items:center;text-decoration:none;display:inline-flex;position:relative}.tabs__bar a:hover,.tabs__bar a[aria-selected=true]{color:var(--ink)}.tabs__bar a:after{content:"";background:var(--signal);transform-origin:0;height:2px;transition:transform var(--mod-2) var(--ease-x);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.tabs__bar a[aria-selected=true]:after{transform:scaleX(1)}.tabs__panel[hidden]{display:none}.tabs__panel.is-in{animation:panel-in var(--mod-2) var(--ease-x-in) both}@keyframes panel-in{0%{opacity:0;transform:translateY(var(--sp-3))}}.tabs .cv__sec,.tabs__panel:not(.cv__sec){margin-top:var(--sp-6)}body:is(.p-home,.p-philosophy,.p-founder,.p-work,.p-blog,.p-post,.p-contact,.p-err):not(.ad) main{isolation:isolate;padding-bottom:var(--sec);position:relative}body:is(.p-home,.p-philosophy,.p-founder,.p-work,.p-blog,.p-post,.p-contact,.p-err):not(.ad) main:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(var(--rule), var(--rule)) calc(var(--pad) - var(--sp-3)) 0 / 1px 100% no-repeat, linear-gradient(var(--rule), var(--rule)) calc(100% - var(--pad) + var(--sp-3)) 0 / 1px 100% no-repeat;position:absolute;inset:0}@media (width>=900px){body:is(.p-home,.p-philosophy,.p-founder,.p-work,.p-blog,.p-post,.p-contact,.p-err):not(.ad) main:after{content:"";z-index:-1;pointer-events:none;width:1px;top:0;bottom:0;left:calc(var(--pad) + (100% - 2 * var(--pad)) / 4 - var(--gut) / 4);left:round(nearest, calc(var(--pad) + (100% - 2 * var(--pad)) / 4 - var(--gut) / 4), 1px);background:var(--rule);transform-origin:50% 0;position:absolute}}@media (prefers-reduced-motion:no-preference){body:is(.p-home,.p-philosophy,.p-founder,.p-work,.p-blog,.p-post,.p-contact,.p-err):not(.ad) main:before{animation:vline-size var(--slow-2) var(--ease-x-in) backwards}body:is(.p-home,.p-philosophy,.p-founder,.p-work,.p-blog,.p-post,.p-contact,.p-err):not(.ad) main:after{animation:vline-scale var(--slow-2) var(--ease-x-in) .12s backwards}}@keyframes vline-size{0%{background-size:1px 0,1px 0}}@keyframes vline-scale{0%{transform:scaleY(0)}}body:not(.ad) :is(.register,.index-list,.difference,.cv-list,:is(.p-contact,.p-err) .lines,.pillars__index,.beliefs,.bl-list){--bl:var(--sp-3);--br:var(--sp-3);border-bottom:0;position:relative}body:not(.ad) :is(.register>li,.difference>div,.index-list li,.belief,.cv-row,.bl-list>li,:is(.p-contact,.p-err) .lines>div,.pillars__index li){background-image:none;animation:none;position:relative}body:not(.ad) :is(.register>li,.difference>div,.index-list li,.belief,.cv-row,.bl-list>li,:is(.p-contact,.p-err) .lines>div,.pillars__index li):after,body:not(.ad) :is(.register,.index-list,.difference,.cv-list,:is(.p-contact,.p-err) .lines,.pillars__index,.beliefs,.bl-list):after{content:"";left:calc(var(--bl) * -1);right:calc(var(--br) * -1);background:var(--rule);pointer-events:none;transform-origin:0;height:1px;position:absolute}body:not(.ad) :is(.register>li,.difference>div,.index-list li,.belief,.cv-row,.bl-list>li,:is(.p-contact,.p-err) .lines>div,.pillars__index li):after{top:0}body:not(.ad) :is(.register,.index-list,.difference,.cv-list,:is(.p-contact,.p-err) .lines,.pillars__index,.beliefs,.bl-list):after{bottom:0}body:not(.ad) .case__pts{--bl:0px;--br:0px}@media (width>=900px){body:not(.ad) :is(.register,.index-list,.difference,.cv-list,:is(.p-contact,.p-err) .lines,.pillars__index){--bl:calc(var(--gut) / 2)}body:not(.ad) .case__pts{--bl:0px}.p-philosophy main>section.pillars>h2{grid-row:1}.p-philosophy main>section.pillars>.beliefs{grid-row:2}:is(.p-contact,.p-err) .lines{max-width:none}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){body:not(.ad) :is(.register>li,.difference>div,.index-list li,.belief,.cv-row,.bl-list>li,:is(.p-contact,.p-err) .lines>div,.pillars__index li):after{animation:linear both rule-scale view();animation-range:entry entry 80%}}}body:not(.ad) :is(.tabs__bar,.bl-lead,.bl-empty){margin-inline:calc(var(--sp-3) * -1);padding-inline:var(--sp-3)}@keyframes rule-scale{0%{transform:scaleX(0)}}:where(.g){fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;flex:none;width:1em;height:1em;overflow:visible}.g path{vector-effect:non-scaling-stroke}@supports (d:path("M0 0")){.g path{transition:d var(--mod-2) var(--ease-x)}:is(a,summary,button):is(:hover,:focus-visible) .g--right .ga{d:path("M2 8L15 8")}:is(a,summary,button):is(:hover,:focus-visible) .g--right .gb{d:path("M10 3L15 8L10 13")}:is(a,summary,button):is(:hover,:focus-visible) .g--left .ga{d:path("M1 8L14 8")}:is(a,summary,button):is(:hover,:focus-visible) .g--left .gb{d:path("M6 3L1 8L6 13")}:is(a,summary,button):is(:hover,:focus-visible) .g--down .ga{d:path("M8 2L8 15")}:is(a,summary,button):is(:hover,:focus-visible) .g--down .gb{d:path("M3 10L8 15L13 10")}:is(a,summary,button):is(:hover,:focus-visible) .g--up .ga{d:path("M8 1L8 14")}:is(a,summary,button):is(:hover,:focus-visible) .g--up .gb{d:path("M3 6L8 1L13 6")}details[open] .g--plus .gb{d:path("M8 8L8 8L8 8")}@media (prefers-reduced-motion:no-preference){.cue .ga{animation:cue-a var(--slow-1) var(--ease-x) .5s backwards}.cue .gb{animation:cue-b var(--slow-1) var(--ease-x) .5s backwards}}}@keyframes cue-a{0%{d:path("M2 8L14 8")}}@keyframes cue-b{0%{d:path("M8 2L8 8L8 14")}}.h,.belief:before,.se__word,.who__bar a[aria-selected=true]{background-image:linear-gradient(color-mix(in srgb, var(--ink) 9%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 9%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--ink) 4%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 4%, transparent) 1px, transparent 1px);background-position:0 0;background-size:40px 40px,40px 40px,8px 8px,8px 8px}.h:before,.h:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(var(--reg-c), var(--reg-c)) 50% 50% / var(--reg-arm) var(--reg-w) no-repeat, linear-gradient(var(--reg-c), var(--reg-c)) 50% 50% / var(--reg-w) var(--reg-arm) no-repeat;width:24px;height:24px;transition:rotate var(--mod-2) var(--ease-x);position:absolute;bottom:-12px}.h:hover:before,.h:hover:after{rotate:90deg}.h:before{left:-12.5px}.h:after{right:-12.5px}@media (width<=899px){.h:before,.h:after{display:none}}.skip{z-index:30;padding:var(--sp-4) var(--sp-5);background:var(--signal);color:var(--c-paper);font:400 var(--t-label)/1 var(--mono);text-decoration:none;position:absolute;top:0;left:-9999px}.skip:focus{left:0}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--signal);outline-offset:2px}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.nw{white-space:nowrap}@media (width>=1600px){.p-founder section.note>:not(h2),.p-philosophy main>section>:not(h2,.beliefs,.pillars__index){max-width:78ch}}@media (prefers-reduced-motion:reduce){.tb:hover .tb__reg,.h:hover:before,.h:hover:after{rotate:none}}@media (width<=899px){:root{--pad:20px}html body:not(.ad) main:before{display:none}html .mast__cap{display:none!important}html .mast .nav{margin-inline:calc(var(--pad) * -1);padding-inline:calc(var(--pad) - 8px);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}html .mast .nav>a{flex:none;padding-inline:12px;font-size:.9375rem}html .mast .nav>a.nav__home{padding-inline:12px 8px}html .mast .nav>a[aria-current=page]:after{left:12px;right:12px}html .hero{margin:var(--sp-8) 0 var(--sp-6);font-size:clamp(3.1rem,14.5vw,4.5rem);line-height:.95}html .h__n,html .h .cue{display:none}html .p-home .h__who{max-width:none;font-size:1.0625rem;line-height:1.55}html .h,html .qn{margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}html .h{padding-bottom:var(--sp-8)}html main>h1{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(2.5rem,11vw,3.25rem);line-height:1.02}html main>section,html main>.grid12{margin-top:var(--sp-9)}html .lede{font-size:1.0625rem;line-height:1.5}html .index-list a{row-gap:var(--sp-2);padding:var(--sp-5) 0;grid-template-columns:minmax(0,1fr) 24px}html .index-list .n{grid-area:1/1;font-size:.75rem}html .index-list .t{grid-area:2/1;font-size:1.75rem}html .index-list .d{grid-area:3/1;font-size:.9375rem}html .index-list .go{grid-area:2/2}html .register>li{row-gap:var(--sp-2);grid-template-columns:minmax(0,1fr)}html .register>li>.n{font-size:.75rem}html .register>li>p{grid-column:1}html .svc__head{grid-template-columns:1.75rem minmax(0,1fr) auto;column-gap:12px}html .who__bar{grid-template-columns:minmax(0,1fr)}html .who__bar a+a{border-left:0;border-top:1px solid var(--rule)}html .who__bar a{min-height:0;padding-block:var(--sp-5)}html .who__bar .ghost-num--corner{font-size:3.5rem}html .qn-form{row-gap:var(--sp-3)}html .qn-in{border-bottom-color:var(--rule);min-height:48px}html .qn-name{border-left:0;padding-left:0}html .qn-send{min-height:44px;padding-inline:var(--sp-6);justify-self:start}html .tb__v{font-size:.9375rem}}
