.th-ix{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--sv-ink-3);gap:.4em;font-weight:500;display:inline-flex}.th-ix a{color:var(--sv-accent-ink);transition:opacity .2s}.th-ix a:hover{opacity:.7}.th-whisper{font-family:var(--sv-code);color:var(--sv-accent-ink);transform-origin:0;font-size:12.5px;line-height:1.4;display:inline-block;rotate:-2deg}.site-root :is(.th-further-row,.th-project .in,.th-share,.th-w button,.th-sheet button):focus-visible{outline:2px solid var(--sv-accent);outline-offset:3px}.th-cursor{z-index:80;font-family:var(--sv-sans);color:var(--sv-ink);background:var(--sv-accent);pointer-events:none;opacity:0;transform-origin:0 0;transition:opacity .18s ease, scale .28s var(--sv-ease);align-items:center;gap:6px;padding:6px 11px 6px 12px;font-size:13px;font-weight:500;line-height:1;display:inline-flex;position:fixed;top:0;left:0;scale:.6}.th-cursor.is-on{opacity:1;scale:1}.th-cursor .sv-ar{width:12px;height:12px}@media (pointer:coarse){.th-cursor{display:none}}.th-gl{font-family:var(--sv-sans);color:var(--sv-ink)}.th-gl-formula{letter-spacing:-.02em;flex-direction:column;gap:.15em;font-size:clamp(20px,1.7vw,28px);font-weight:500;line-height:1.12;display:flex}.th-gl-formula span:last-child{color:var(--sv-accent-ink)}.th-gl-list,.th-gl-stack{margin:0;padding:0;list-style:none}.th-gl-list li{font-family:var(--sv-code);color:var(--sv-ink-2);border-bottom:1px dashed var(--sv-line-2);padding:7px 0 7px 18px;font-size:13.5px;position:relative}.th-gl-list li:before{content:"—";color:var(--sv-ink-3);position:absolute;left:0}.th-gl-list li.is-off{color:var(--sv-ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--sv-accent);text-decoration-color:var(--sv-accent);text-decoration-thickness:1.5px}.th-gl-code{font-family:var(--sv-code);color:var(--sv-ink-2);background:var(--sv-paper);border:1px solid var(--sv-line);margin:0;padding:14px 16px;font-size:12.5px;line-height:1.7;overflow:hidden}.th-gl-code span{white-space:pre;display:block}.th-gl-code i{width:2em;color:var(--sv-ink-3);-webkit-user-select:none;user-select:none;font-style:normal;display:inline-block}.th-gl-quote{letter-spacing:-.02em;margin:0;font-size:clamp(20px,1.6vw,26px);font-weight:500;line-height:1.22}.th-gl-stack li{margin-left:calc(var(--i) * 14px);color:var(--sv-ink-3);border-bottom:1px solid var(--sv-line-2);align-items:baseline;gap:12px;padding:9px 0;font-size:17px;font-weight:500;display:flex}.th-gl-stack li.is-hot{color:var(--sv-ink)}.th-gl-stack .n{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;color:var(--sv-ink-3)}.th-gl-stack li.is-hot .n{color:var(--sv-accent-ink)}.th-ui{background:var(--sv-sheet);border:1px solid var(--sv-line);box-shadow:3px 4px 0 var(--sv-line-2);font-family:var(--sv-sans)}.th-ui-hd{border-bottom:1px solid var(--sv-line-2);background:var(--sv-paper);height:28px;font-family:var(--sv-code);color:var(--sv-ink-2);align-items:center;gap:9px;padding:0 10px;font-size:11px;display:flex}.th-ui-hd .sq{gap:4px;display:flex}.th-ui-hd .sq i{background:var(--sv-line);width:6px;height:6px;display:block}.th-ui-bd{margin:0;padding:6px 14px 8px;list-style:none}.th-ui-bd .row{border-bottom:1px solid var(--sv-line-2);grid-template-columns:8px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:10px 0;font-size:15px;line-height:1.35;display:grid}.th-ui-bd .row:last-child{border-bottom:0}.th-ui-bd .dot{background:var(--sv-line);border-radius:50%;width:7px;height:7px;translate:0 -1px}.th-ui-bd .vl{font-family:var(--sv-code);color:var(--sv-ink-3);text-align:right;font-size:12.5px}.th-ui-bd .is-ok .dot{background:var(--sv-ink)}.th-ui-bd .is-warn .dot{box-shadow:inset 0 0 0 1.5px var(--sv-accent);background:0 0}.th-ui-bd .is-hot .dot{background:var(--sv-accent)}.th-ui-bd .is-hot .lb{color:var(--sv-accent-ink)}.th-ui-bd .is-off :is(.lb,.vl){color:var(--sv-ink-3);text-decoration:line-through}.th-ui.is-small .row{padding:8px 0;font-size:14px}.th-vis-img{background:var(--sv-paper);display:block;overflow:hidden}.th-vis-img img,.th-vis-img video{object-fit:cover;object-position:top left;width:100%;height:100%;display:block}.th-sketch{font-family:var(--sv-code);color:var(--sv-ink-2);flex-direction:column;gap:4px;padding:6px 0 18px 4px;font-size:13.5px;display:flex;position:relative}.th-sketch>span{rotate:calc((var(--i) - 2) * .6deg);transform-origin:0}.th-sketch>span:nth-child(4),.th-sketch>span:nth-child(5){color:var(--sv-accent-ink)}.th-sketch-loop{width:44%;height:calc(100% - 8px);position:absolute;top:8px;right:0;overflow:visible}.th-sketch-loop path{fill:none;stroke:var(--sv-ink-3);stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1px}.is-in .th-sketch-loop path{animation:th-draw 1.1s .5s var(--sv-ease) forwards}.st{color:var(--sv-ink);position:relative}.st-whisper{margin-top:clamp(26px,5vh,56px);display:block}.st-formula{letter-spacing:-.048em;margin:0;font-size:clamp(34px,4vw,76px);font-weight:500;line-height:1.02}.st-formula .ln{white-space:nowrap;display:block}.st-strike{color:var(--sv-ink-3);position:relative}.st-strike i{background:var(--sv-accent);transform-origin:0;height:.07em;position:absolute;top:54%;left:-.03em;right:-.03em;transform:scaleX(0)}.st-phrase{letter-spacing:-.042em;text-wrap:balance;max-width:15ch;margin:0;font-size:clamp(34px,3.9vw,72px);font-weight:500;line-height:1.04}.st-stack{margin:0;padding:0;list-style:none}.st-stack li{padding:.18em 0 .2em calc(var(--i) * 1.1em);letter-spacing:-.045em;color:var(--sv-ink-3);border-bottom:1px solid var(--sv-line-2);align-items:baseline;gap:.6em;font-size:clamp(34px,4.2vw,78px);font-weight:500;line-height:1;display:flex}.st-stack li.is-hot{color:var(--sv-ink)}.st-stack .n{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.16em;color:var(--sv-ink-3);font-weight:400;translate:0 -.8em}.st-stack li.is-hot .n{color:var(--sv-accent-ink)}.st-code{font-family:var(--sv-code);color:var(--sv-ink-2);white-space:pre;margin:0;font-size:clamp(17px,1.85vw,32px);line-height:1.65}.st-code .ln{display:block}.st-code .ln i{letter-spacing:.1em;vertical-align:.35em;width:2.6em;color:var(--sv-ink-3);font-size:.5em;font-style:normal;display:inline-block}.st-code .ln.is-mark{color:var(--sv-ink);background:linear-gradient(color-mix(in srgb, var(--sv-accent) 16%, transparent), color-mix(in srgb, var(--sv-accent) 16%, transparent)) no-repeat 2.6em 0 / 100% 100%}.st-artifact{width:min(560px,92%);rotate:-1.6deg}.st-artifact .th-ui{box-shadow:6px 9px 0 var(--sv-line-2)}.st-artifact .th-ui-bd .row{padding:14px 0;font-size:clamp(15px,1.25vw,19px)}.st-artifact .th-ui-bd .vl{font-size:clamp(12px,.95vw,14px)}.st-list{margin:0;padding:0;list-style:none}.st-list li{letter-spacing:-.035em;font-size:clamp(26px,2.9vw,52px);font-weight:500;line-height:1.16}.st-list li span{position:relative}.st-list li.is-off{color:var(--sv-ink-3)}.st-list li.is-off span:after{content:"";background:var(--sv-accent);transform-origin:0;height:.065em;position:absolute;top:55%;left:-.04em;right:-.04em;transform:scaleX(0)}.st-play :is(.st-formula .ln,.st-stack li,.st-code .ln,.st-list li,.th-ui-bd .row){animation:th-line .6s var(--sv-ease) both;animation-delay:calc(var(--i,0) * 80ms + .12s)}.st-play .st-phrase{animation:th-swap .9s var(--sv-ease) both}.st-play .st-artifact{animation:th-drop .8s var(--sv-ease) both}.st-play .st-strike i{animation:.5s ease-out .75s forwards th-strike}.st-play .st-list li.is-off span:after{animation:.4s ease-out forwards th-strike;animation-delay:calc(var(--i) * .26s + .6s)}.st-play .st-whisper{animation:.6s .9s both th-swap}.st.is-inline .st-formula{font-size:clamp(28px,8vw,40px)}.st.is-inline .st-formula .ln{white-space:normal}.st.is-inline .st-strike i,.st.is-inline .st-list li.is-off span:after{transform:none}.st.is-inline .st-phrase{font-size:clamp(24px,6.8vw,32px)}.st.is-inline .st-stack li{font-size:clamp(26px,7.6vw,36px)}.st.is-inline .st-code{font-size:13px;overflow:hidden}.st.is-inline .st-artifact{width:100%;rotate:-1deg}.st.is-inline .st-list li{font-size:clamp(21px,6vw,28px)}.th-progress{top:var(--sv-nav-h);left:var(--sv-rule-x);right:var(--sv-rule-x);z-index:89;background:var(--sv-accent);height:2px;transform:scaleX(var(--p,0));transform-origin:0;pointer-events:none;position:fixed}.sv-wrap.th-head{padding-top:calc(var(--sv-nav-h) + clamp(56px, 11vh, 132px));padding-bottom:clamp(56px,10vh,120px)}.th-head .th-ix{margin-bottom:clamp(26px,4.4vh,48px)}.site-root .th-head h1.th-title{letter-spacing:-.047em;max-width:none;font-size:clamp(40px,6.3vw,112px);line-height:.98}.is-essay .th-head h1.th-title{letter-spacing:-.052em;font-size:clamp(44px,8.2vw,148px);line-height:.94}.is-note .th-head h1.th-title{font-size:clamp(36px,4.8vw,80px)}.th-head-foot{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(28px,5vw,96px);margin-top:clamp(40px,7vh,84px);display:grid}.th-lead{letter-spacing:-.01em;color:var(--sv-ink-2);text-wrap:pretty;max-width:40ch;font-size:clamp(19px,1.55vw,25px);line-height:1.4}.th-meta{grid-template-columns:repeat(2,auto);margin:0;display:grid}.th-meta>div{border-left:1px solid var(--sv-line);gap:6px;padding:0 clamp(18px,2vw,32px);display:grid}.th-meta dt{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-ink-3)}.th-meta dd{font-size:var(--sv-fs-sm);color:var(--sv-ink);margin:0}.th-lang{font-family:var(--sv-code);color:var(--sv-ink-3);margin-top:28px;font-size:12.5px}.th-body{--th-side:calc(var(--sv-rule-x) + var(--sv-inset));grid-template-columns:[full-start] minmax(var(--th-side), 1fr) [wide-start] minmax(0, 7em) [mid-start] minmax(0, 3.5em) [text-start] minmax(min(34em, calc(100% - 2 * var(--th-side))), 34em) [text-end] minmax(0, 3.5em) [mid-end] minmax(0, 7em) [wide-end] minmax(var(--th-side), 1fr) [full-end];color:var(--sv-ink);padding-bottom:clamp(48px,9vh,110px);font-size:clamp(17px,.5vw + 11.5px,19.5px);line-height:1.64;display:grid}.th-body>*{grid-column:text;min-width:0}.th-body>.th-mid{grid-column:mid}.th-body>.th-wide{grid-column:wide}.th-body>.th-full{margin-inline:var(--sv-rule-x);grid-column:full}.th-p{text-wrap:pretty;hanging-punctuation:first;margin:0 0 1.05em}.th-p em,.th-list em,.th-conclusion em{color:var(--sv-accent-ink);font-style:normal}.th-link{text-decoration:underline;-webkit-text-decoration-color:var(--sv-accent);text-decoration-color:var(--sv-accent);text-underline-offset:.2em;text-decoration-thickness:1px}.th-link:hover{color:var(--sv-accent-ink)}.site-root .th-body h2.th-h{letter-spacing:-.025em;max-width:none;margin:2.1em 0 .7em;font-size:1.5em;line-height:1.15}.th-list{border-left:1px solid var(--sv-line);margin:.2em 0 1.4em;padding:0;list-style:none}.th-list li{color:var(--sv-ink-2);padding:.35em 0 .35em 1.4em;position:relative}.th-list li:before{content:"";background:var(--sv-ink-3);width:.7em;height:1px;position:absolute;top:1.05em;left:-1px}.th-margin{margin:-.1em 0 1.5em 1.2em}.th-margin .in{transform-origin:0;align-items:baseline;gap:10px;display:inline-flex;position:relative;rotate:-1.2deg}.th-margin svg{flex:none;width:34px;height:10px;overflow:visible;translate:0 -2px}.th-margin svg path{fill:none;stroke:var(--sv-accent);stroke-width:1.3px;stroke-linecap:round}.th-margin .tx{font-family:var(--sv-code);color:var(--sv-accent-ink);font-size:13px;line-height:1.45}@media (min-width:1280px){.th-margin{height:0;margin:0;position:relative}.th-margin .in{transform-origin:0 0;opacity:0;width:min(13.5em,50vw - 24em);transition:opacity .6s ease .2s, translate .8s var(--sv-ease) .2s;flex-direction:column;align-items:flex-start;gap:4px;position:absolute;top:-3.4em;left:calc(100% + 3.2em);translate:-6px;rotate:-1.6deg}.th-margin.is-left .in{text-align:right;transform-origin:100% 0;align-items:flex-end;left:auto;right:calc(100% + 3.2em);translate:6px;rotate:1.4deg}.th-margin.is-in .in{opacity:1;translate:0}.th-margin svg{width:60px;height:14px;translate:none}.th-margin.is-left svg{scale:-1 1}.th-margin svg path{fill:none;stroke:var(--sv-accent);stroke-width:1.3px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.th-margin.is-in svg path{animation:.8s ease-out .35s forwards th-draw}.th-margin .tx{font-size:12.5px}}.th-quote{grid-column:mid;margin:1.6em 0 1.9em}.th-body>.th-quote{grid-column:mid}.th-quote blockquote{margin:0}.th-quote blockquote p{letter-spacing:-.025em;text-indent:-.45em;text-wrap:balance;font-size:clamp(24px,2.35vw,38px);font-weight:500;line-height:1.18}.th-quote figcaption{align-items:center;gap:16px;min-height:30px;margin-top:16px;display:flex}.th-quote .who{font-size:var(--sv-fs-sm);color:var(--sv-ink-3)}.th-share{border:1px solid var(--sv-line);cursor:pointer;height:30px;font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-ink-2);transition:opacity .3s ease, color .2s, border-color .2s, translate .4s var(--sv-ease);background:0 0;align-items:center;gap:7px;padding:0 12px 0 10px;display:inline-flex}.th-share svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}.th-share:hover{color:var(--sv-accent-ink);border-color:var(--sv-accent)}@media (pointer:coarse){.th-share{height:40px;padding:0 14px 0 12px}}@media (hover:hover) and (pointer:fine){:is(.th-quote,.th-thought) .th-share{opacity:0;translate:-4px}:is(.th-quote,.th-thought):is(:hover,:focus-within) .th-share,.th-share:focus-visible{opacity:1;translate:0}}.th-thought{min-height:min(92vh,980px);padding:clamp(64px, 12vh, 140px) calc(var(--sv-gutter) + var(--sv-inset));border-block:1px solid var(--sv-frame);background-image:var(--sv-ruling);place-items:center;margin-block:2.4em;display:grid}.th-thought .in{width:100%;max-width:calc(var(--sv-max) - 2 * (var(--sv-gutter) + var(--sv-inset)))}.site-root .th-thought h2.big{letter-spacing:-.05em;max-width:15ch;font-size:clamp(40px,7.2vw,128px);line-height:.98}.th-thought .foot{align-items:center;gap:22px;margin-top:clamp(28px,5vh,56px);display:flex}.th-thought .note{font-family:var(--sv-code);color:var(--sv-accent-ink);font-size:14px}.th-morph{--p:0;border-block:1px solid var(--sv-frame);height:290vh;margin-block:2em;position:relative}.th-morph .pin{height:100vh;padding:calc(var(--sv-nav-h) + 4vh) calc(var(--sv-gutter) + var(--sv-inset)) 4vh;grid-template-rows:1fr auto;display:grid;position:sticky;top:0;overflow:hidden}.th-morph .stage{align-items:center;display:grid}.th-morph .stage>p{letter-spacing:-.048em;grid-area:1/1;margin:0;font-weight:500}.th-morph .from{--o:clamp(0, calc(1 - (var(--p) - .42) * 7), 1);opacity:var(--o);transform:translateY(calc((1 - var(--o)) * -.35em));font-size:clamp(38px,6.6vw,118px);line-height:1}.th-morph .to{font-size:clamp(32px,4.9vw,86px);line-height:1.02}.th-morph .ln{display:block}.th-morph .to .ln{--o:clamp(0, calc((var(--p) - .5 - var(--i) * .07) * 9), 1);opacity:var(--o);transform:translateY(calc((1 - var(--o)) * .5em))}.th-morph .to .ln.is-last{color:var(--sv-accent-ink)}.th-morph .st{color:color-mix(in srgb, var(--sv-ink) calc(100% - clamp(0, (var(--p) - .14) * 6, 1) * 55%), transparent);position:relative}.th-morph .st i{background:var(--sv-accent);height:.07em;transform:scaleX(clamp(0, calc((var(--p) - .14) * 5), 1));transform-origin:0;position:absolute;top:54%;left:-.04em;right:-.04em}.th-morph .foot{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-ink-3);justify-content:space-between;gap:20px;display:flex}.th-morph .hint{opacity:clamp(0, calc(1 - var(--p) * 8), 1)}.th-morph.is-still{height:auto}.th-morph.is-still .pin{height:auto;padding-block:clamp(64px,12vh,140px);position:static}.th-morph.is-still .stage{flex-direction:column;align-items:flex-start;gap:.6em;display:flex}.th-morph.is-still .from{opacity:.55;transform:none}.th-morph.is-still .st i{transform:none}.th-morph.is-still .to .ln{opacity:1;transform:none}.th-scene{--p:0;height:calc(100vh + var(--n) * 55vh);margin-block:2.4em}.th-scene .pin{height:100vh;padding:calc(var(--sv-nav-h) + 4vh) calc(var(--sv-gutter) + var(--sv-inset) + 2vw) 6vh;background-color:var(--sv-ink);background-image:radial-gradient(circle at center, color-mix(in srgb, var(--sv-page) 16%, transparent) 1.15px, transparent 1.25px);color:var(--sv-page);background-size:22px 22px;flex-direction:column;justify-content:center;gap:clamp(22px,4vh,44px);display:flex;position:sticky;top:0;overflow:hidden}.th-scene .eyebrow{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--sv-accent)}.th-scene .lines{letter-spacing:-.045em;max-width:16ch;margin:0;font-size:clamp(34px,5.4vw,94px);font-weight:500;line-height:1.02}.th-scene :is(.ln,.after){--o:clamp(.12, calc((var(--p) * (var(--n) + .4) - var(--i)) * 2.2), 1);opacity:var(--o);transition:opacity .2s linear}.th-scene .ln{display:block}.th-scene .after{max-width:34ch;color:color-mix(in srgb, var(--sv-page) 72%, transparent);margin:0;font-size:clamp(17px,1.4vw,22px);line-height:1.45}.th-scene.is-still{height:auto}.th-scene.is-still .pin{height:auto;min-height:80vh;position:static}.th-scene.is-still :is(.ln,.after){opacity:1}.th-fig{margin:2.2em 0 2.4em}.th-cap{font-size:var(--sv-fs-meta);color:var(--sv-ink-3);gap:14px;margin-top:14px;line-height:1.5;display:flex}.th-cap .fig{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;color:var(--sv-accent-ink);flex:none;padding-top:.2em}.th-image .th-vis-img{border:1px solid var(--sv-line)}.th-pair .two{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,1.6vw,26px);display:grid}.th-pair .area{aspect-ratio:4/3;border:1px solid var(--sv-line);background:var(--sv-paper);align-items:center;padding:clamp(18px,2.2vw,34px);display:grid;overflow:hidden}.th-pair .area:has(>.th-vis-img){padding:0}.th-pair .area>.th-vis-img{height:100%}.th-pair .sub{font-size:var(--sv-fs-meta);color:var(--sv-ink-2);gap:10px;margin-top:12px;display:flex}.th-pair .sub b{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;color:var(--sv-accent-ink);padding-top:.2em;font-weight:500}.th-diagram .steps{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;margin:0;padding:0;list-style:none;display:grid}.th-diagram .st{flex-direction:column;gap:6px;padding:18px 22px 0 0;display:flex;position:relative}.th-diagram .st:before{content:"";background:var(--sv-ink-3);transform-origin:0;height:1px;transition:transform .7s var(--sv-ease);transition-delay:calc(var(--i) * .16s);position:absolute;top:0;left:0;right:14px;transform:scaleX(0)}.th-diagram .st:after{content:"→";color:var(--sv-ink-3);opacity:0;transition:opacity .4s;transition-delay:calc(var(--i) * .16s + .4s);font-size:15px;position:absolute;top:-.72em;right:0}.th-diagram .st:last-child:after{display:none}.th-diagram.is-in .st:before{transform:scaleX(1)}.th-diagram.is-in .st:after{opacity:1}.th-diagram .n{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;color:var(--sv-ink-3)}.th-diagram .lb{letter-spacing:-.015em;font-size:clamp(17px,1.35vw,21px);font-weight:500;line-height:1.2}.th-diagram .nt{font-size:var(--sv-fs-meta);color:var(--sv-ink-3)}.th-diagram .st.is-hot:before{background:var(--sv-accent);height:2px}.th-diagram .st.is-hot :is(.lb,.n){color:var(--sv-accent-ink)}.th-diagram .st.is-off .lb{color:var(--sv-ink-3);text-decoration:line-through}.th-diagram .back{width:92%;height:46px;margin:10px 4% 0;display:block;overflow:visible}.th-diagram .back path{fill:none;stroke:var(--sv-ink-3);stroke-width:1.2px;stroke-dasharray:1;stroke-dashoffset:1px;vector-effect:non-scaling-stroke}.th-diagram.is-in .back path{animation:th-draw 1.3s 1s var(--sv-ease) forwards}.th-diagram.is-layers .steps{grid-auto-flow:row}.th-diagram.is-layers .st{margin-left:calc(var(--i) * clamp(18px, 3vw, 54px));border-bottom:1px solid var(--sv-line-2);grid-template-columns:3.4em minmax(0,12em) minmax(0,1fr);align-items:baseline;gap:16px;padding:16px 0;display:grid}.th-diagram.is-layers .st:before{transition-delay:calc(var(--i) * .14s);right:0}.th-diagram.is-layers .st:after{display:none}.th-diagram.is-layers .lb{font-size:clamp(19px,1.6vw,26px)}.th-w{border:1px solid var(--sv-line);background:var(--sv-sheet);box-shadow:3px 4px 0 var(--sv-line-2);font-size:var(--sv-fs-sm);padding:clamp(20px,2.4vw,34px)}.th-w-ctl{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-ink-3);justify-content:space-between;display:flex}.th-w-ctl output{color:var(--sv-accent-ink)}.th-w input[type=range]{width:100%;accent-color:var(--sv-accent);cursor:pointer;margin:14px 0 22px}.th-w input[type=range]:focus-visible{outline:2px solid var(--sv-accent);outline-offset:4px}.th-w-rows{gap:14px;display:grid}.th-w-row{grid-template-columns:4.6em minmax(0,1fr);grid-template-areas:"lb bar"".nums";align-items:center;gap:6px 14px;display:grid}.th-w-row .lb{grid-area:lb;font-weight:500}.th-w-row .bar{background:var(--sv-paper);grid-area:bar;height:12px;display:flex}.th-w-row .bar i{width:calc(var(--w) * 100%);transition:width .45s var(--sv-ease)}.th-w-row .bar .ok{background:var(--sv-ink-3)}.th-w-row .bar .bad{background:var(--sv-accent)}.th-w-row .nums{font-family:var(--sv-code);color:var(--sv-ink-3);grid-area:nums;font-size:12.5px}.th-w-row .nums b{color:var(--sv-accent-ink);font-weight:500}.th-w-say{border-top:1px solid var(--sv-line-2);font-size:var(--sv-fs-body);letter-spacing:-.01em;margin-top:20px;padding-top:16px;font-weight:500;line-height:1.4}.th-w-seg{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.th-w-seg button{box-shadow:inset 0 0 0 1px var(--sv-frame);cursor:pointer;font-size:var(--sv-fs-sm);background:0 0;border:0;padding:8px 14px;font-weight:500;transition:background .2s,box-shadow .2s}.th-w-seg button:hover{background:var(--sv-tile)}.th-w-seg button[aria-pressed=true]{background:var(--sv-accent);box-shadow:none;color:var(--sv-ink)}.th-w-steps{counter-reset:none;margin:0;padding:0;list-style:none}.th-w-steps li{border-bottom:1px solid var(--sv-line-2);letter-spacing:-.015em;animation:th-line .45s var(--sv-ease) both;animation-delay:calc(var(--i) * 90ms);align-items:baseline;gap:14px;padding:10px 0;font-size:clamp(18px,1.5vw,23px);font-weight:500;display:flex}.th-w-steps li.is-vague{color:var(--sv-ink-3);font-style:normal}.th-w-steps .n{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;color:var(--sv-accent-ink)}.th-w-meter{background:var(--sv-paper);height:6px;margin:14px 0 18px;display:block}.th-w-meter i{height:100%;width:calc(var(--w) * 100%);background:var(--sv-accent);transition:width .45s var(--sv-ease);display:block}.th-w-ticks{margin:0;padding:0;list-style:none}.th-w-ticks button{border:0;border-bottom:1px solid var(--sv-line-2);width:100%;color:inherit;cursor:pointer;font:inherit;font-size:var(--sv-fs-body);text-align:left;background:0 0;align-items:baseline;gap:14px;padding:11px 0;line-height:1.35;display:flex}.th-w-ticks .box{width:14px;height:14px;box-shadow:inset 0 0 0 1px var(--sv-frame);flex:none;transition:background .2s,box-shadow .2s;transform:translateY(1px)}.th-w-ticks button:hover .box{background:var(--sv-tile)}.th-w-ticks button[aria-pressed=true] .box{background:var(--sv-accent);box-shadow:none}.th-w-ticks button:focus-visible{outline:2px solid var(--sv-accent);outline-offset:2px}.th-aside{border-top:2px solid var(--sv-ink);background-image:var(--sv-ruling);background-color:var(--sv-paper);margin:1.8em 0 2.2em;padding:1.3em 1.5em 1.4em}.th-aside .ttl{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-accent-ink);margin-bottom:.7em;font-weight:500;display:block}.th-aside p{color:var(--sv-ink-2);font-size:.94em;line-height:1.6}.th-code pre{font-family:var(--sv-code);color:var(--sv-ink-2);tab-size:2;margin:0;padding:14px 0;font-size:13.5px;line-height:1.75;overflow-x:auto}.th-code .ln{white-space:pre;padding:0 18px 0 0;display:block}.th-code .ln i{text-align:right;width:3.2em;color:var(--sv-ink-3);-webkit-user-select:none;user-select:none;padding-right:1.2em;font-style:normal;display:inline-block}.th-code .ln.is-mark{color:var(--sv-ink);background:color-mix(in srgb, var(--sv-accent) 14%, transparent);box-shadow:inset 2px 0 0 var(--sv-accent)}.th-project{margin:3em 0 2.6em}.th-project .in{border-top:1px solid var(--sv-frame);color:var(--sv-ink);grid-template:"lbl pic""nm pic""kd pic""tx pic"1fr"go pic"/minmax(0,1fr) minmax(0,.9fr);column-gap:clamp(22px,3vw,54px);padding-top:22px;display:grid}.th-project .lbl{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-accent-ink);grid-area:lbl;align-items:center;gap:8px;display:inline-flex}.th-project .lbl .sv-ar,.th-project .go .sv-ar{width:13px;height:13px}.th-project .nm{letter-spacing:-.04em;grid-area:nm;margin-top:18px;font-size:clamp(30px,3.4vw,56px);font-weight:500;line-height:1}.th-project .kd{font-size:var(--sv-fs-sm);color:var(--sv-ink-3);grid-area:kd;margin-top:10px}.th-project .tx{color:var(--sv-ink-2);grid-area:tx;max-width:40ch;margin-top:18px;font-size:.95em;line-height:1.55}.th-project .go{width:max-content;font-size:var(--sv-fs-sm);border-bottom:1px solid var(--sv-line);grid-area:go;align-items:center;gap:8px;margin-top:20px;padding-bottom:4px;font-weight:500;transition:color .25s,border-color .25s;display:inline-flex}.th-project .pic{grid-area:pic;align-self:start}.th-project .pic .th-vis-img{aspect-ratio:16/10;border:1px solid var(--sv-line)}.th-project .pic img,.th-project .pic video{transition:scale .8s var(--sv-ease)}.th-project .in:hover .go{color:var(--sv-accent-ink);border-color:var(--sv-accent)}.th-project .in:hover .pic :is(img,video){scale:1.025}.th-conclusion{border-top:2px solid var(--sv-accent);margin:3.2em 0 1em;padding-top:26px}.th-conclusion .lbl{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--sv-accent-ink);margin-bottom:22px;display:block}.th-conclusion p{letter-spacing:-.035em;margin:0;font-size:clamp(26px,3vw,50px);font-weight:500;line-height:1.1}.th-conclusion .ln{text-wrap:balance;display:block}.th-conclusion .ln+.ln{margin-top:.3em}.th-conclusion .ln:not(:last-child){color:var(--sv-ink-2)}.th-article .is-target{animation:4.6s both th-target;position:relative}.th-article .is-target:before{content:"";background:var(--sv-accent);pointer-events:none;width:2px;animation:4.6s both th-target-bar;position:absolute;top:.15em;bottom:.15em;left:-1.1em}.th-article .th-full.is-target:before{z-index:2;width:3px;top:0;bottom:0;left:0}.th-article .th-full.is-target{animation:none}.th-further-list{margin:0;padding:0;list-style:none}.th-further-row{border-bottom:1px solid var(--sv-line-2);grid-template-columns:minmax(0,12em) 4.4em minmax(0,1fr) auto 20px;align-items:baseline;gap:clamp(14px,2vw,30px);padding:clamp(20px,3vh,32px) 12px;transition:background-color .3s;display:grid}.th-further-row:hover{background:color-mix(in srgb, var(--sv-paper-2) 60%, transparent)}.th-further-row .lbl,.th-further-row .no,.th-further-row .sub{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-ink-3)}.th-further-row .lbl{color:var(--sv-accent-ink)}.th-further-row .ttl{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(21px,2.1vw,34px);font-weight:500;line-height:1.1}.th-further-row .sub{white-space:nowrap}.th-further-row .sv-ar{align-self:center;width:17px;height:17px}.th-further-all{margin-top:34px}.th-sheet{width:min(600px,100vw - 32px);max-width:none;max-height:none;color:var(--sv-ink);font-family:var(--sv-sans);background:0 0;border:0;margin:auto;padding:0;overflow:visible}.th-sheet::backdrop{background:color-mix(in srgb, var(--sv-page) 96%, transparent)}.site-root.is-dark .th-sheet::backdrop{background:#13120df5}.th-card{background:var(--sv-sheet);background-image:var(--sv-ruling);border:1px solid var(--sv-frame);box-shadow:6px 9px 0 var(--sv-line-2);margin:0;padding:clamp(28px,4vw,48px) clamp(26px,4vw,48px) clamp(22px,3vw,32px);position:relative;rotate:-.8deg}.th-sheet[open] .th-card{animation:th-cut .55s var(--sv-ease) both}.th-card:before,.th-card:after{content:"";pointer-events:none;width:18px;height:18px;position:absolute}.th-card:before{border-left:2px solid var(--sv-mark);border-top:2px solid var(--sv-mark);top:-1px;left:-1px}.th-card:after{border-right:2px solid var(--sv-mark);border-bottom:2px solid var(--sv-mark);bottom:-1px;right:-1px}.th-card .ix{font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--sv-accent-ink);margin-bottom:clamp(18px,3vh,30px);display:block}.th-card blockquote{letter-spacing:-.03em;text-indent:-.42em;text-wrap:balance;margin:0;font-size:clamp(24px,3vw,36px);font-weight:500;line-height:1.14}.th-card figcaption{border-top:1px solid var(--sv-line-2);font-size:var(--sv-fs-meta);color:var(--sv-ink-3);flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:clamp(24px,4vh,40px);padding-top:14px;display:flex}.th-card-logo{letter-spacing:-.02em;color:var(--sv-ink);font-size:16px;font-weight:600}.th-sheet-acts{flex-wrap:wrap;gap:4px 26px;margin-top:26px;padding-left:4px;display:flex}.th-sheet-acts button{cursor:pointer;min-height:44px;font-size:var(--sv-fs-sm);color:var(--sv-ink);text-decoration:underline;-webkit-text-decoration-color:var(--sv-line);text-decoration-color:var(--sv-line);text-underline-offset:.35em;background:0 0;border:0;padding:0;font-weight:500;transition:color .2s,text-decoration-color .2s}.th-sheet-acts button:hover{color:var(--sv-accent-ink);-webkit-text-decoration-color:var(--sv-accent);text-decoration-color:var(--sv-accent)}.th-sheet-acts button.is-quiet{color:var(--sv-ink-3);margin-left:auto;text-decoration:none}.th-sheet-status{min-height:1.4em;font-family:var(--sv-mono);font-size:var(--sv-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--sv-accent-ink);margin:2px 0 0 4px}@media (max-width:960px){.sv-wrap.th-head{padding-top:calc(var(--sv-nav-h) + 44px);padding-bottom:48px}.site-root .th-head h1.th-title,.is-essay .th-head h1.th-title{font-size:clamp(36px,10.4vw,58px);line-height:1}.is-note .th-head h1.th-title{font-size:clamp(32px,8.6vw,46px)}.th-head-foot{grid-template-columns:1fr;gap:28px}.th-meta>div:first-child{border-left:0;padding-left:0}.th-thought{min-height:70vh}.th-morph .to{font-size:clamp(30px,9vw,52px)}.th-morph .from{font-size:clamp(34px,10vw,60px)}.th-scene{height:calc(100vh + var(--n) * 45vh)}.th-scene .lines{max-width:none;font-size:clamp(30px,8.2vw,44px)}.th-morph{height:210vh}.th-pair .two{grid-template-columns:1fr}.th-diagram:not(.is-layers) .steps{grid-auto-flow:row}.th-diagram:not(.is-layers) .st{padding:14px 0 22px}.th-diagram:not(.is-layers) .st:before{right:0}.th-diagram:not(.is-layers) .st:after{content:"↓";inset:auto auto -4px 0}.th-diagram .back{display:none}.th-diagram.is-loop .st:last-child:after{content:"↺ и снова";font-family:var(--sv-code);color:var(--sv-accent-ink);font-size:12px;display:block;bottom:-14px}.th-diagram.is-layers .st{margin-left:calc(var(--i) * 10px);grid-template-columns:2.6em minmax(0,1fr)}.th-diagram.is-layers .nt{grid-column:2;margin-top:-10px}.th-project .in{grid-template-columns:1fr;grid-template-areas:"lbl""pic""nm""kd""tx""go"}.th-project .pic{margin-top:18px}.th-further-row{grid-template-columns:3.4em minmax(0,1fr) 18px;grid-template-areas:"lbl lbl lbl""no ttl ar"".sub sub";row-gap:8px;padding-inline:0}.th-further-row .lbl{grid-area:lbl}.th-further-row .no{grid-area:no}.th-further-row .ttl{grid-area:ttl}.th-further-row .sub{white-space:normal;grid-area:sub}.th-further-row .sv-ar{grid-area:ar}.th-sheet-acts button.is-quiet{margin-left:0}}@media (max-width:600px){.th-quote blockquote p{font-size:clamp(23px,6.6vw,30px)}.th-code pre{font-size:12px}.th-ui-bd .row{grid-template-columns:8px minmax(0,1fr)}.th-ui-bd .vl{text-align:left;grid-column:2}.th-meta>div{border-left:0;padding:0 18px 0 0}}@keyframes th-line{0%{opacity:0;transform:translateY(6px)}}@keyframes th-swap{0%{opacity:0;transform:translateY(12px)}}@keyframes th-strike{to{transform:scaleX(1)}}@keyframes th-drop{0%{opacity:0;transform:translateY(-18px)rotate(-3deg)}}@keyframes th-draw{to{stroke-dashoffset:0}}@keyframes th-cut{0%{opacity:0;transform:translateY(18px)rotate(1.6deg)}}@keyframes th-target{0%,8%{background-color:#0000;box-shadow:0 0 0 .55em #0000}22%,70%{background-color:color-mix(in srgb, var(--sv-accent) 9%, transparent);box-shadow:0 0 0 .55em color-mix(in srgb, var(--sv-accent) 9%, transparent)}to{background-color:#0000;box-shadow:0 0 0 .55em #0000}}@keyframes th-target-bar{0%,8%{opacity:0}22%,75%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.th-page *,.th-page :before,.th-page :after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-delay:0s!important}.th-article .is-target,.th-article .is-target:before{background-color:color-mix(in srgb, var(--sv-accent) 8%, transparent);animation:none!important}.th-article .is-target:before{opacity:1}}
