:root{--bg:oklch(0.972 0.009 92);--bg-sunk:oklch(0.945 0.012 92);--ink:oklch(0.21 0.016 62);--ink-soft:oklch(0.44 0.014 62);--ink-faint:oklch(0.62 0.012 66);--rule:oklch(0.875 0.012 88);--rule-strong:oklch(0.76 0.016 84);--accent:oklch(0.53 0.115 62);--accent-soft:oklch(0.93 0.04 72);--gutter:clamp(1.25rem,5vw,3.5rem);--rail:12rem}@media (prefers-color-scheme:dark){:root{--bg:oklch(0.19 0.012 62);--bg-sunk:oklch(0.235 0.014 62);--ink:oklch(0.945 0.01 88);--ink-soft:oklch(0.75 0.012 84);--ink-faint:oklch(0.57 0.012 70);--rule:oklch(0.31 0.014 62);--rule-strong:oklch(0.42 0.016 64);--accent:oklch(0.76 0.12 72);--accent-soft:oklch(0.3 0.05 66)}}*,:after,:before{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif;font-size:clamp(.95rem,.92rem + .18vw,1.05rem);line-height:1.72;letter-spacing:-.011em;word-break:keep-all}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.page{max-width:78rem;margin-inline:auto;padding-inline:var(--gutter);display:grid;grid-template-columns:1fr;grid-gap:0;gap:0}@media (min-width:60rem){.page{grid-template-columns:var(--rail) minmax(0,1fr);column-gap:clamp(2rem,5vw,4.5rem)}}.rail{display:none}@media (min-width:60rem){.rail{display:block;position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;padding-block:3.5rem 2rem;border-right:1px solid var(--rule);margin-right:-1px}}.rail-mark{font-weight:800;font-size:1.05rem;letter-spacing:-.03em;margin:0 0 2.5rem}.rail-mark span{display:block;font-size:.68rem;font-weight:600;letter-spacing:.16em;color:var(--ink-faint);margin-top:.35rem}.rail nav ol{list-style:none;margin:0;padding:0;font-size:.82rem}.rail nav li{margin-bottom:.55rem}.rail nav a{display:flex;gap:.65rem;color:var(--ink-faint);text-decoration:none;transition:color .16s ease}.rail nav a:hover{color:var(--ink)}.rail nav b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--rule-strong)}.rail-foot{position:absolute;bottom:2rem;font-size:.72rem;color:var(--ink-faint);line-height:1.6}main{padding-block:clamp(2.5rem,6vw,3.5rem) 0;min-width:0}.masthead{padding-bottom:clamp(2.5rem,6vw,4rem);border-bottom:2px solid var(--ink)}.mobile-mark{font-weight:800;letter-spacing:-.03em;margin:0 0 2rem}@media (min-width:60rem){.mobile-mark{display:none}}h1{margin:0;font-size:clamp(2.1rem,1.3rem + 3.6vw,4rem);line-height:1.1;font-weight:800;letter-spacing:-.04em;max-width:18ch}h1 em{font-style:normal;color:var(--accent)}.standfirst{margin:1.5rem 0 0;max-width:48ch;font-size:clamp(1rem,.95rem + .35vw,1.18rem);color:var(--ink-soft)}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.btn{display:inline-block;padding:.7rem 1.35rem;border:1px solid var(--ink);border-radius:2px;text-decoration:none;font-weight:650;font-size:.92rem;transition:transform .18s cubic-bezier(.22,1,.36,1)}.btn:hover{transform:translateY(-1px)}.btn-solid{background:var(--ink);color:var(--bg)}.btn-ghost{border-color:var(--rule-strong);color:var(--ink)}section{padding-block:clamp(2.75rem,6vw,4.25rem);border-bottom:1px solid var(--rule);scroll-margin-top:1rem}.sec-head{display:flex;align-items:baseline;gap:.9rem;margin-bottom:1.75rem}.sec-num{font-size:.72rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:.08em}h2{margin:0;font-size:clamp(1.3rem,1.15rem + .7vw,1.75rem);font-weight:750;letter-spacing:-.032em}.sec-note{margin:0 0 2rem;max-width:56ch;color:var(--ink-soft)}.entry{padding-block:1.6rem;border-top:1px solid var(--rule);display:grid;grid-gap:.35rem 2.5rem;gap:.35rem 2.5rem}@media (min-width:48rem){.entry{grid-template-columns:minmax(0,1fr) 14rem}}.entry:first-of-type{border-top:0;padding-top:0}.entry h3{margin:0;font-size:1.12rem;font-weight:700;letter-spacing:-.025em}.entry h3 span{font-size:.8rem;font-weight:500;color:var(--ink-faint);margin-left:.5rem;letter-spacing:0}.entry p{margin:.45rem 0 0;color:var(--ink-soft);max-width:54ch}.entry-meta{font-size:.8rem;color:var(--ink-faint);align-self:start}@media (min-width:48rem){.entry-meta{text-align:right;padding-top:.3rem}}.entry-meta a{color:var(--accent);text-decoration:none;font-weight:600;border-bottom:1px solid}.entry-meta dl{margin:.5rem 0 0}.entry-meta dt{display:none}.entry-meta dd{margin:.15rem 0 0}.client-work{margin-top:2.25rem;padding-top:1.75rem;border-top:1px solid var(--rule)}.client-work .entry{border-top:0;padding-top:.5rem}.client-work h3 span{color:var(--accent);font-weight:600}.modules{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;max-width:54ch}.modules li{font-size:.8rem;color:var(--ink-soft);background:var(--bg-sunk);border:1px solid var(--rule);padding:.25rem .6rem;border-radius:2px}.shots{margin-top:1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));grid-gap:1rem;gap:1rem;align-items:start}.shots figure{margin:0}.shots figure[data-wide=true]{grid-column:1/-1}.shots img{display:block;width:100%;border:1px solid var(--rule);border-radius:3px;background:var(--bg-sunk)}.shots figure:not([data-wide=true]) img{height:19rem;object-fit:cover;object-position:top}.shots figure[data-wide=true] img{height:auto}.shots figcaption{margin-top:.45rem;font-size:.74rem;line-height:1.5;color:var(--ink-faint)}.shots-note{margin:.9rem 0 0;font-size:.75rem;color:var(--ink-faint)}.automation{margin-top:2.25rem;padding-top:1.75rem;border-top:1px solid var(--rule)}.automation .sec-note{margin-bottom:1.1rem}.works-lead{margin-top:2.25rem;padding-top:1.75rem;border-top:1px solid var(--rule)}.works{list-style:none;margin:0;padding:0;display:grid;grid-gap:0;gap:0}@media (min-width:48rem){.works{grid-template-columns:1fr 1fr;column-gap:clamp(2rem,4vw,3.5rem)}}.works li{padding-block:.85rem;border-top:1px solid var(--rule)}.work-name{display:block;font-weight:650;font-size:.96rem;letter-spacing:-.02em}.work-name a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .16s ease}.work-name a:hover{border-bottom-color:currentColor}.work-desc{display:block;font-size:.86rem;color:var(--ink-soft);margin-top:.15rem;max-width:44ch}.ledger{width:100%;border-collapse:collapse;font-size:.93rem}.ledger th{text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.13em;color:var(--ink-faint);text-transform:uppercase;padding-bottom:.6rem;border-bottom:1px solid var(--rule-strong)}.ledger td{padding-block:.95rem;border-bottom:1px solid var(--rule);vertical-align:top}.ledger td:first-child{font-weight:650;white-space:nowrap;padding-right:1.5rem}.ledger td:last-child{color:var(--ink-faint);font-size:.85rem}@media (max-width:40rem){.ledger,.ledger tbody,.ledger td,.ledger tr{display:block;width:100%}.ledger thead{display:none}.ledger tr{border-bottom:1px solid var(--rule);padding-block:.9rem}.ledger td{border:0;padding-block:.1rem}.ledger td:first-child{color:var(--accent);font-size:.78rem;letter-spacing:.04em}}.masthead-note{margin:1.1rem 0 0;font-size:.86rem;color:var(--ink-faint);max-width:44ch}.situations{list-style:none;margin:0;padding:0}.situations li{padding-block:1.15rem;border-top:1px solid var(--rule);max-width:62ch}.situations li:first-child{border-top:0;padding-top:0}.sit-q{margin:0 0 .3rem;font-size:clamp(1rem,.96rem + .25vw,1.12rem);font-weight:650;letter-spacing:-.022em;color:var(--ink)}.sit-a{margin:0;font-size:.92rem;color:var(--ink-soft);padding-left:.9rem;border-left:2px solid var(--accent)}.process{list-style:none;margin:0;padding:0}.process li{display:grid;grid-template-columns:2.75rem minmax(0,1fr);grid-gap:0 1rem;gap:0 1rem;padding-block:1.3rem;border-top:1px solid var(--rule)}.process li:first-child{border-top:0;padding-top:0}.process h3{margin:0 0 .3rem;font-size:1.02rem;font-weight:700;letter-spacing:-.022em}.process p{margin:0;font-size:.93rem;max-width:56ch}.process p,.promise{color:var(--ink-soft)}.promise{margin:2rem 0 0;padding:1.1rem 1.25rem;background:var(--bg-sunk);border-left:2px solid var(--accent);font-size:.92rem;max-width:62ch}.promise a{color:var(--ink);font-weight:650;text-decoration:none;border-bottom:2px solid var(--accent)}.promise span{display:inline-block;margin-top:.4rem}.service-tech{margin:.5rem 0 0!important;font-size:.76rem;color:var(--ink-faint);letter-spacing:.02em}.ledger-list{list-style:none;margin:0;padding:0}.ledger-list li{padding-block:1.15rem;border-top:1px solid var(--rule)}.ledger-list li:first-child{border-top:0;padding-top:0}.ledger-authority{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--accent);text-transform:uppercase}.ledger-what{margin:.3rem 0 0;font-weight:650;letter-spacing:-.02em}.ledger-means{margin:.25rem 0 0;color:var(--ink-soft);font-size:.92rem;max-width:56ch}.howto,.stack-wrap{margin-top:2rem;border-top:1px solid var(--rule)}.howto>summary,.stack-wrap>summary{cursor:pointer;padding-block:1rem;font-weight:650;font-size:.94rem;letter-spacing:-.018em;list-style:none;display:flex;justify-content:space-between;gap:1rem;color:var(--ink-soft)}.howto>summary::-webkit-details-marker,.stack-wrap>summary::-webkit-details-marker{display:none}.howto>summary:after,.stack-wrap>summary:after{content:"+";color:var(--accent);font-weight:400;font-size:1.2rem;line-height:1}.howto[open]>summary:after,.stack-wrap[open]>summary:after{content:"−"}.howto[open]>summary,.stack-wrap[open]>summary{color:var(--ink)}.closing{margin-top:clamp(3rem,6vw,4.5rem);padding-top:2.25rem;border-top:2px solid var(--ink);max-width:58ch}.closing h2{margin:0 0 .85rem;font-size:clamp(1.25rem,1.1rem + .9vw,1.75rem);letter-spacing:-.032em;font-weight:750}.closing p{margin:0 0 1.5rem;color:var(--ink-soft)}.stack{margin:0}.stack>div{display:grid;grid-gap:.5rem 1.5rem;gap:.5rem 1.5rem;padding-block:1.05rem;border-top:1px solid var(--rule)}.stack>div:first-child{border-top:0;padding-top:0}@media (min-width:40rem){.stack>div{grid-template-columns:9rem minmax(0,1fr);align-items:baseline}}.stack dt{font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--accent)}.stack dd{margin:0}.stack ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem .4rem}.stack li{font-size:.83rem;color:var(--ink-soft);border:1px solid var(--rule);background:var(--bg-sunk);padding:.2rem .55rem;border-radius:2px}.services{display:grid;grid-gap:0;gap:0}@media (min-width:48rem){.services{grid-template-columns:1fr 1fr;column-gap:clamp(2rem,4vw,3.5rem)}}.service{padding-block:1.5rem;border-top:1px solid var(--rule)}.service h3{margin:0 0 .4rem;font-size:1.02rem;font-weight:700;letter-spacing:-.022em}.service p{margin:0;color:var(--ink-soft);font-size:.93rem}.faq{border-top:1px solid var(--rule)}.faq details{border-bottom:1px solid var(--rule)}.faq summary{cursor:pointer;padding-block:1.05rem;font-weight:650;letter-spacing:-.018em;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--accent);font-weight:400;font-size:1.2rem;line-height:1}.faq details[open] summary:after{content:"−"}.faq p{margin:0 0 1.2rem;color:var(--ink-soft);max-width:62ch;font-size:.94rem}.tool{background:var(--bg-sunk);border-left:2px solid var(--accent);padding:1.5rem clamp(1.25rem,3vw,2rem);margin-top:.5rem}.tool h3{margin:0 0 .5rem;font-size:1.05rem;letter-spacing:-.022em}.tool p{margin:0 0 1rem;color:var(--ink-soft);max-width:52ch;font-size:.94rem}.steps{list-style:none;margin:0;padding:0;counter-reset:step}.steps li{display:grid;grid-template-columns:2.75rem minmax(0,1fr);grid-gap:0 1rem;gap:0 1rem;padding-block:1.4rem;border-top:1px solid var(--rule)}.steps li:first-child{border-top:0;padding-top:0}.step-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700;color:var(--accent);letter-spacing:.06em;padding-top:.28rem}.steps h3{margin:0 0 .35rem;font-size:1.02rem;font-weight:700;letter-spacing:-.022em}.steps p{margin:0;color:var(--ink-soft);font-size:.93rem;max-width:58ch}.reading{margin-bottom:2.25rem}.reading-label{font-size:.7rem;font-weight:700;letter-spacing:.13em;color:var(--ink-faint);text-transform:uppercase;margin:0 0 .75rem}.reading-item{display:block;padding:1.05rem 1.25rem;background:var(--bg-sunk);border-left:2px solid var(--rule-strong);text-decoration:none;transition:border-color .18s ease}.reading-item:hover{border-left-color:var(--accent)}.reading-item strong{display:block;font-weight:700;letter-spacing:-.022em;margin-bottom:.3rem}.reading-item span{display:block;font-size:.88rem;color:var(--ink-soft);max-width:58ch}.facts{display:grid;grid-gap:.75rem 2.5rem;gap:.75rem 2.5rem;margin:0;font-size:.92rem}@media (min-width:40rem){.facts{grid-template-columns:auto 1fr}}.facts dt{color:var(--ink-faint);font-size:.78rem;letter-spacing:.06em}.facts dd{margin:0}.facts a{color:var(--accent);font-weight:600}footer{padding-block:2.5rem 4rem;font-size:.78rem;color:var(--ink-faint)}footer p{margin:.3rem 0}footer a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--rule-strong)}.doc{max-width:40rem;padding-block:clamp(2.5rem,6vw,3.5rem) 4rem}.crumbs{font-size:.78rem;margin:0 0 1.75rem}.crumbs,.crumbs a{color:var(--ink-faint)}.crumbs a{text-decoration:none;border-bottom:1px solid var(--rule-strong)}.doc h1{font-size:clamp(1.7rem,1.3rem + 2vw,2.6rem);max-width:22ch}.doc-meta{margin:1.25rem 0 2.5rem;padding-bottom:1.5rem;border-bottom:2px solid var(--ink);font-size:.8rem;color:var(--ink-faint)}.doc h2{margin:2.75rem 0 .9rem;font-size:1.25rem}.doc h3{margin:2rem 0 .6rem;font-size:1.02rem;font-weight:700}.doc p{margin:0 0 1.1rem;color:var(--ink-soft)}.doc ol,.doc ul{margin:0 0 1.3rem;padding-left:1.2rem;color:var(--ink-soft)}.doc li{margin-bottom:.5rem}.doc strong{color:var(--ink);font-weight:650}.doc code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em;padding:.12em .36em;border-radius:2px}.callout,.doc code{background:var(--bg-sunk)}.callout{border-left:2px solid var(--accent);padding:1.1rem 1.25rem;margin:0 0 1.5rem}.callout p:last-child{margin-bottom:0}.doc table{width:100%;border-collapse:collapse;font-size:.86rem;margin:.75rem 0 1.4rem}.doc td,.doc th{text-align:left;vertical-align:top;padding:.55rem .6rem;border-bottom:1px solid var(--rule)}.doc th{font-size:.7rem;font-weight:700;letter-spacing:.08em;color:var(--ink-faint);text-transform:uppercase;border-bottom:1px solid var(--rule-strong)}.doc td{color:var(--ink-soft)}.doc td:first-child{color:var(--ink);font-weight:600}@media (max-width:40rem){.doc table{display:block;overflow-x:auto;white-space:nowrap}}.legal h2{font-size:1.12rem;margin-top:2.4rem}.legal h3{font-size:.95rem;color:var(--ink-soft)}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}