.m-page{--m-surface:#f2efe8}.m-page .m-container{max-width:1200px;margin:0 auto;padding:0 32px}.m-page .divider{border:0;border-top:1px solid var(--color-hair);margin:0}.m-page .kicker{color:var(--color-ink-faint);align-items:center;gap:10px;margin-bottom:24px;font-size:13px;display:inline-flex}.m-page .kicker:before{content:"";background:var(--color-ink);width:16px;height:1px}.m-page .heading{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;max-width:24ch;margin:0;font-size:clamp(28px,3.4vw,44px);font-weight:500;line-height:1.05}.m-page .heading-wide{max-width:28ch}.m-page .lede{max-width:60ch;color:var(--color-ink-2);margin-top:24px;font-size:17px;line-height:1.55}.m-page .m-hero{padding-top:clamp(120px,18vh,180px);padding-bottom:clamp(64px,10vh,96px)}.m-page .m-hero h1{font-family:var(--font-display);letter-spacing:-.035em;text-wrap:balance;max-width:24ch;margin:0 0 24px;font-size:clamp(34px,4.6vw,60px);font-weight:500;line-height:1}.m-page .m-hero h1 .accent{color:var(--color-ink-faint)}.m-page .m-hero .meta{border-top:1px solid var(--color-hair);color:var(--color-ink-faint);flex-wrap:wrap;gap:12px 32px;margin-top:36px;padding-top:20px;font-size:13px;display:flex}.m-page .m-hero .meta .item{align-items:baseline;gap:8px;display:inline-flex}.m-page .m-hero .meta .val{color:var(--color-ink)}.m-page .m-section{padding:clamp(72px,10vh,120px) 0}.m-page .m-section.tight{padding:clamp(48px,7vh,80px) 0}.m-page .m-prose{max-width:60ch;color:var(--color-ink-2);font-size:17px;line-height:1.6}.m-page .m-prose>*+*{margin-top:18px}.m-page .m-prose p{color:var(--color-ink-2);margin:0}.m-page .m-prose strong{color:var(--color-ink);font-weight:600}.m-page .m-prose em{color:var(--color-ink);font-style:italic}.m-page .m-section-head{grid-template-columns:1fr 1.2fr;align-items:end;gap:clamp(40px,8vw,100px);margin-bottom:56px;display:grid}.m-page .m-section-head .lede{margin-top:0}@media (max-width:800px){.m-page .m-section-head{grid-template-columns:1fr;align-items:start;gap:24px}}.m-page .stats{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.m-page .stat{background:var(--color-bg);flex-direction:column;gap:14px;min-height:200px;padding:32px 26px;display:flex}.m-page .stat .num{font-family:var(--font-display);letter-spacing:-.035em;color:var(--color-ink);font-size:clamp(36px,4vw,52px);font-weight:500;line-height:1}.m-page .stat .num .unit{color:var(--color-ink-faint);vertical-align:.4em;margin-left:2px;font-size:.5em}.m-page .stat .desc{color:var(--color-ink-2);font-size:15px;line-height:1.5}.m-page .stat .src{color:var(--color-ink-faint);margin-top:auto;font-size:13px}@media (max-width:1000px){.m-page .stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.m-page .stats{grid-template-columns:1fr}}.m-page .m-quote{grid-template-columns:1fr 1.4fr;align-items:start;gap:clamp(40px,8vw,100px);display:grid}.m-page .m-quote .text{font-family:var(--font-display);letter-spacing:-.022em;color:var(--color-ink);text-wrap:balance;font-size:clamp(22px,2.4vw,30px);font-weight:500;line-height:1.22}.m-page .m-quote .attr{color:var(--color-ink-faint);flex-direction:column;gap:2px;font-size:13px;display:flex}.m-page .m-quote .attr .name{color:var(--color-ink);font-size:14px;font-weight:500}@media (max-width:800px){.m-page .m-quote{grid-template-columns:1fr;gap:24px}}.m-page .ladder{border-top:1px solid var(--color-hair)}.m-page .ladder .row{border-bottom:1px solid var(--color-hair);grid-template-columns:60px 1fr 2fr 100px;align-items:baseline;gap:24px;padding:22px 0;display:grid}.m-page .ladder .row .idx{color:var(--color-ink-faint);font-size:13px}.m-page .ladder .row .role{font-family:var(--font-display);letter-spacing:-.022em;color:var(--color-ink);font-size:clamp(20px,2.2vw,26px);font-weight:500;line-height:1.15}.m-page .ladder .row .desc{color:var(--color-ink-dim);font-size:15px;line-height:1.5}.m-page .ladder .row .stage{text-align:right;color:var(--color-ink-faint);font-size:13px}.m-page .ladder .row.now .stage{color:var(--color-ink)}@media (max-width:800px){.m-page .ladder .row{grid-template-columns:40px 1fr;gap:12px;padding:18px 0}.m-page .ladder .row .desc{grid-column:2}.m-page .ladder .row .stage{text-align:left;grid-column:2}}.m-page .diptych{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:1fr 1fr;gap:1px;display:grid}.m-page .diptych .col{background:var(--color-bg);flex-direction:column;gap:24px;padding:40px 32px;display:flex}.m-page .diptych .col-kicker{color:var(--color-ink-faint);align-items:center;gap:10px;font-size:13px;display:inline-flex}.m-page .diptych .col-kicker:before{content:"";background:var(--color-ink);width:16px;height:1px}.m-page .diptych .col h3{font-family:var(--font-display);letter-spacing:-.025em;color:var(--color-ink);text-wrap:balance;margin:0;font-size:clamp(24px,2.8vw,32px);font-weight:500;line-height:1.12}.m-page .diptych .col p{color:var(--color-ink-2);margin:0;font-size:15px;line-height:1.55}.m-page .diptych .case-list{border-top:1px solid var(--color-hair);margin-top:8px}.m-page .diptych .case{border-bottom:1px solid var(--color-hair);grid-template-columns:120px 1fr;align-items:baseline;gap:20px;padding:16px 0;display:grid}.m-page .diptych .case .co{color:var(--color-ink);font-size:14px;font-weight:500}.m-page .diptych .case .line{color:var(--color-ink-dim);font-size:14px;line-height:1.5}@media (max-width:800px){.m-page .diptych{grid-template-columns:1fr}.m-page .diptych .case{grid-template-columns:1fr;gap:4px}}.m-page .coda-stack{border-top:1px solid var(--color-hair)}.m-page .coda-line{font-family:var(--font-display);letter-spacing:-.028em;border-bottom:1px solid var(--color-hair);align-items:baseline;gap:16px;padding:24px 0;font-size:clamp(24px,2.8vw,36px);font-weight:500;line-height:1.15;display:flex}.m-page .coda-line .from{color:var(--color-ink-faint);font-weight:400}.m-page .coda-line .to{color:var(--color-ink)}.m-page .m-pager{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:1fr 1fr;gap:1px;display:grid}.m-page .m-pager>*{background:var(--color-bg);flex-direction:column;gap:8px;min-height:140px;padding:32px 28px;transition:background .2s;display:flex}.m-page .m-pager a:hover{background:var(--m-surface)}.m-page .m-pager .dir,.m-page .m-pager .num{color:var(--color-ink-faint);font-size:12px}.m-page .m-pager h4{font-family:var(--font-display);letter-spacing:-.022em;color:var(--color-ink);margin:0;font-size:22px;font-weight:500;line-height:1.15}.m-page .m-pager .next{text-align:right;align-items:flex-end}.m-page .m-pager .placeholder{color:var(--color-ink-faint)}@media (max-width:700px){.m-page .m-pager{grid-template-columns:1fr}}.m-page .m-foot{color:var(--color-ink-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:28px 0 56px;font-size:12.5px;display:flex}.m-page .m-foot .left{flex-wrap:wrap;gap:24px;display:flex}.m-page .m-foot a{color:var(--color-ink-2);transition:color .2s}.m-page .m-foot a:hover{color:var(--color-ink-faint)}.m-share{z-index:40;background:var(--color-ink);color:var(--color-bg);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);border:none;border-radius:999px;align-items:center;gap:10px;padding:11px 18px;transition:background .2s;display:inline-flex;position:fixed;bottom:24px;right:24px}.m-share:hover{background:#2a2a2a}.m-share.copied .label:after{content:" — copied";opacity:.7}@media (max-width:600px){.m-page .m-container{padding:0 20px}.m-share{padding:10px 14px;bottom:16px;right:16px}}.m-page .m-map-placeholder{background:var(--color-surface);border:1px solid var(--color-hair);aspect-ratio:16/9;color:var(--color-ink-faint);letter-spacing:.02em;border-radius:12px;justify-content:center;align-items:center;font-size:14px;display:flex}.m-page .map-wrap{background:var(--color-bg);border:1px solid var(--color-hair);aspect-ratio:16/9;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.m-page #map-leaflet{background:var(--color-bg);width:100%;height:100%}.m-page #map-leaflet .leaflet-tile-pane{filter:grayscale()contrast(.92)brightness(1.06)sepia(.18)saturate(.55);opacity:.85;mix-blend-mode:multiply}.m-page #map-leaflet .leaflet-container{background:var(--color-bg);font-family:var(--font-sans);outline:0}.m-page #map-leaflet .leaflet-control-attribution{border-left:1px solid var(--color-hair);border-top:1px solid var(--color-hair);color:var(--color-ink-faint);background:#faf8f4d9;padding:3px 8px;font-size:10.5px}.m-page #map-leaflet .leaflet-control-attribution a{color:var(--color-ink-dim)}.m-page #map-leaflet .leaflet-control-zoom{border:1px solid var(--color-hair);box-shadow:none;border-radius:0}.m-page #map-leaflet .leaflet-control-zoom a{background:var(--color-bg);color:var(--color-ink);border-bottom:1px solid var(--color-hair);width:32px;height:32px;font-weight:400;line-height:32px;font-family:var(--font-sans);border-radius:0!important}.m-page #map-leaflet .leaflet-control-zoom a:last-child{border-bottom:0}.m-page #map-leaflet .leaflet-control-zoom a:hover{background:var(--m-surface)}.hb-dot{border:1.4px solid #faf8f4;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 .5px #0a0a0a40}.hb-dot-wrap{background:0 0!important;border:0!important}.leaflet-tooltip.hb-label{background:var(--color-ink);color:var(--color-bg);font-family:var(--font-sans);letter-spacing:.01em;box-shadow:none;white-space:nowrap;border:0;border-radius:0;padding:5px 9px;font-size:12px;font-weight:500}.leaflet-tooltip.hb-label:before{display:none}.m-page .map-legend{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:16px;display:grid}.m-page .map-legend .row{background:var(--color-bg);cursor:pointer;align-items:center;gap:10px;padding:14px 16px;font-size:13px;transition:background .15s;display:flex}.m-page .map-legend .row:hover{background:var(--m-surface)}.m-page .map-legend .row.off{opacity:.35}.m-page .map-legend .swatch{background:var(--color-ink);border-radius:50%;flex-shrink:0;width:6px;height:6px}.m-page .map-legend .name{color:var(--color-ink)}@media (max-width:900px){.m-page .map-legend{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.m-page .map-legend{grid-template-columns:1fr}}.m-page .map-caption{color:var(--color-ink-faint);margin-top:16px;font-size:13px}.m-page .app-burden{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.m-page .app-burden .cell{background:var(--color-bg);flex-direction:column;gap:14px;min-height:220px;padding:32px 26px;display:flex}.m-page .app-burden .num{font-family:var(--font-display);letter-spacing:-.035em;color:var(--color-ink);font-size:clamp(36px,4vw,52px);font-weight:500;line-height:1}.m-page .app-burden .num .unit{color:var(--color-ink-faint);vertical-align:.4em;margin-left:2px;font-size:.5em}.m-page .app-burden .desc{color:var(--color-ink-2);font-size:15px;line-height:1.5}.m-page .app-burden .src{color:var(--color-ink-faint);margin-top:auto;font-size:13px}@media (max-width:1000px){.m-page .app-burden{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.m-page .app-burden{grid-template-columns:1fr}}.m-page .flow-diagram{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:1fr 1fr;gap:1px;display:grid}.m-page .flow-diagram .col{background:var(--color-bg);flex-direction:column;gap:24px;min-height:360px;padding:40px 32px;display:flex}.m-page .flow-diagram .col-kicker{color:var(--color-ink-faint);align-items:center;gap:10px;font-size:13px;display:inline-flex}.m-page .flow-diagram .col-kicker:before{content:"";background:var(--color-ink);width:16px;height:1px}.m-page .flow-diagram h3{font-family:var(--font-display);letter-spacing:-.024em;color:var(--color-ink);margin:0;font-size:clamp(22px,2.4vw,28px);font-weight:500;line-height:1.12}.m-page .flow-diagram .chain{flex-direction:column;gap:10px;margin-top:12px;display:flex}.m-page .flow-diagram .step{font-family:var(--font-display);letter-spacing:-.012em;color:var(--color-ink);border:1px solid var(--color-hair);background:var(--color-bg);align-items:center;gap:14px;padding:14px 18px;font-size:17px;font-weight:500;display:flex}.m-page .flow-diagram .step .idx{font-family:var(--font-sans);color:var(--color-ink-faint);letter-spacing:.06em;width:16px;font-size:11px;font-weight:500}.m-page .flow-diagram .step.dim{color:var(--color-ink-dim);background:0 0;border-style:dashed}.m-page .flow-diagram .arrow{text-align:center;color:var(--color-ink-faint);font-size:14px;line-height:1;font-family:var(--font-display)}.m-page .flow-diagram .col.new .step{border-color:var(--color-hair-2);background:var(--m-surface)}.m-page .flow-diagram .meta{border-top:1px solid var(--color-hair);color:var(--color-ink-faint);margin-top:auto;padding-top:20px;font-size:13px;line-height:1.55}@media (max-width:800px){.m-page .flow-diagram{grid-template-columns:1fr}}.m-page .role-shift{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:1fr 1fr;gap:1px;display:grid}.m-page .role-shift .col{background:var(--color-bg);flex-direction:column;padding:40px 32px;display:flex}.m-page .role-shift .col-kicker{color:var(--color-ink-faint);align-items:center;gap:10px;margin-bottom:16px;font-size:13px;display:inline-flex}.m-page .role-shift .col-kicker:before{content:"";background:var(--color-ink);width:16px;height:1px}.m-page .role-shift h3{font-family:var(--font-display);letter-spacing:-.026em;color:var(--color-ink);align-items:flex-start;min-height:2.3em;margin:0 0 24px;font-size:clamp(24px,2.6vw,30px);font-weight:500;line-height:1.15;display:flex}.m-page .role-shift h3 .dim{color:var(--color-ink-faint)}@media (max-width:800px){.m-page .role-shift h3{min-height:0}}.m-page .role-shift ul{border-top:1px solid var(--color-hair);margin:0;padding:0;list-style:none}.m-page .role-shift li{border-bottom:1px solid var(--color-hair);color:var(--color-ink-2);grid-template-columns:28px 1fr;align-items:baseline;gap:14px;padding:13px 0;font-size:15px;display:grid}.m-page .role-shift li .n{color:var(--color-ink-faint);letter-spacing:.06em;font-size:11px}.m-page .role-shift .col.dir{background:var(--m-surface)}.m-page .role-shift .col.dir li .n{color:var(--color-ink-dim)}.m-page .role-shift .col.dir li{color:var(--color-ink)}@media (max-width:800px){.m-page .role-shift{grid-template-columns:1fr}}.m-page .bottleneck{border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair)}.m-page .bottleneck .top{background:var(--color-hair);grid-template-columns:1fr 1fr;gap:1px;display:grid}.m-page .bottleneck .q{background:var(--color-bg);flex-direction:column;gap:16px;min-height:200px;padding:40px 32px;display:flex}.m-page .bottleneck .q .lbl{color:var(--color-ink-faint);align-items:center;gap:10px;font-size:13px;display:inline-flex}.m-page .bottleneck .q .lbl:before{content:"";background:var(--color-ink);width:16px;height:1px}.m-page .bottleneck .q .text{font-family:var(--font-display);letter-spacing:-.025em;color:var(--color-ink);margin:0;font-size:clamp(24px,2.6vw,32px);font-weight:500;line-height:1.1}.m-page .bottleneck .q.dim .text{color:var(--color-ink-faint)}.m-page .bottleneck .primitives{background:var(--color-bg);border-top:1px solid var(--color-hair);padding:32px}.m-page .bottleneck .primitives .label{color:var(--color-ink-faint);align-items:center;gap:10px;margin-bottom:18px;font-size:13px;display:inline-flex}.m-page .bottleneck .primitives .label:before{content:"";background:var(--color-ink);width:16px;height:1px}.m-page .bottleneck .primitives .grid{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);flex-wrap:wrap;gap:1px;margin-left:-1px;margin-right:-1px;display:flex}.m-page .bottleneck .primitives .chip{background:var(--color-bg);font-family:var(--font-display);letter-spacing:-.012em;color:var(--color-ink);text-align:center;flex:auto;min-width:130px;padding:14px 20px;font-size:16px;font-weight:500}@media (max-width:800px){.m-page .bottleneck .top{grid-template-columns:1fr}}.m-page .metrics-shift{background:var(--color-hair);border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);grid-template-columns:1fr 1fr;gap:1px;display:grid}.m-page .metrics-shift .col{background:var(--color-bg);padding:40px 32px}.m-page .metrics-shift .col.post{background:var(--m-surface)}.m-page .metrics-shift .col-kicker{color:var(--color-ink-faint);align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:inline-flex}.m-page .metrics-shift .col-kicker:before{content:"";background:var(--color-ink);width:16px;height:1px}.m-page .metrics-shift h3{font-family:var(--font-display);letter-spacing:-.024em;color:var(--color-ink);margin:0 0 24px;font-size:clamp(22px,2.4vw,28px);font-weight:500;line-height:1.1}.m-page .metrics-shift .list{border-top:1px solid var(--color-hair);margin:0;padding:0;list-style:none}.m-page .metrics-shift .list li{border-bottom:1px solid var(--color-hair);font-family:var(--font-display);letter-spacing:-.018em;color:var(--color-ink);grid-template-columns:1fr auto;align-items:baseline;gap:16px;padding:14px 0;font-size:clamp(17px,1.7vw,19px);font-weight:500;display:grid}.m-page .metrics-shift .list li .tag{font-family:var(--font-sans);color:var(--color-ink-faint);letter-spacing:.04em;font-size:12px;font-weight:400}.m-page .metrics-shift .col.old .list li{color:var(--color-ink-dim);text-decoration:line-through;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-hair-2);text-decoration-color:var(--color-hair-2)}@media (max-width:800px){.m-page .metrics-shift{grid-template-columns:1fr}}.m-page .m-pull{border-top:1px solid var(--color-hair);border-bottom:1px solid var(--color-hair);margin:0;padding:48px 0}.m-page .m-pull .text{font-family:var(--font-display);letter-spacing:-.028em;color:var(--color-ink);text-wrap:balance;max-width:28ch;margin:0;font-size:clamp(26px,3vw,38px);font-weight:500;line-height:1.12}.m-page .m-pull .text .dim{color:var(--color-ink-faint)}.read-progress{z-index:60;pointer-events:none;background:0 0;height:2px;display:block;position:fixed;top:0;left:0;right:0}.read-progress span{background:var(--color-ink);transform-origin:0;width:100%;height:100%;transition:transform 80ms linear;display:block;transform:scaleX(0)}
