/* KHIPU landing v2 — Terminal register. Loads after demo.css; reuses .td-* structural classes. */
.t2 { --t2-max:1200px; }
.t2-wrap { max-width:var(--t2-max); margin:0 auto; padding:0 var(--k-s-8); }
@media (max-width:640px){ .t2-wrap { padding:0 var(--k-s-5); } }

/* reveal-on-enter — staggered via --d; clip-path ONLY on [data-fx=clip] (a blanket inset(0)
   clips serif ascenders/descenders that paint outside the content box — the “cut off” bug) */
.t2-r { opacity:0; transform:translateY(22px); transition:opacity 600ms var(--k-ease), transform 600ms cubic-bezier(.22,.61,.2,1), clip-path 700ms var(--k-ease); transition-delay:var(--d,0ms); }
.t2-r[data-fx="clip"] { clip-path:inset(14% 4% 14% 4% round var(--k-r-lg)); transform:scale(.98) translateY(10px); }
.t2-r.in { opacity:1; transform:none; }
.t2-r[data-fx="clip"].in { clip-path:inset(0 0 0 0 round var(--k-r-lg)); }
@media (prefers-reduced-motion: reduce){ .t2-r, .t2-r[data-fx="clip"] { opacity:1; transform:none; clip-path:none; transition:none; } }

/* load-in (above the fold, animation not IO) */
@media (prefers-reduced-motion: no-preference){
.t2-load { opacity:0; animation:t2fade 600ms var(--k-ease) forwards; animation-delay:var(--d,0ms); }
@keyframes t2fade { to { opacity:1; } }
.t2-h1 .w { display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.12em; margin-bottom:-.12em; }
.t2-h1 .wi { display:inline-block; transform:translateY(115%); animation:t2rise 800ms cubic-bezier(.22,.61,.2,1) forwards; animation-delay:var(--d,0ms); }
@keyframes t2rise { to { transform:none; } }
.t2-hero-sticky .t2-wrap { transform:translateY(calc(var(--p) * -30px)); }
@media (max-height:1039px){ .t2-hero-sticky .t2-wrap { transform:none; } }
}

/* section shell: mono index header */
.t2-sec { border-top:1px solid var(--k-rule); padding:var(--k-s-16) 0; }
.t2-idx { display:flex; align-items:baseline; gap:var(--k-s-4); margin-bottom:var(--k-s-8); }
.t2-idx .n { font-family:var(--k-font-mono); font-size:var(--k-fs-caption); font-weight:600; color:var(--k-accent); }
.t2-idx .l { font-family:var(--k-font-mono); text-transform:uppercase; letter-spacing:var(--k-tr-over); font-size:var(--k-fs-2xs); color:var(--k-ink-3); }
.t2-idx::after { content:''; flex:1; height:1px; background:var(--k-rule); align-self:center; transform:scaleX(0); transform-origin:left; transition:transform 900ms var(--k-ease) 150ms; }
.t2-idx.in::after { transform:scaleX(1); }
@media (prefers-reduced-motion: reduce){ .t2-idx::after { transform:scaleX(1); transition:none; } }

/* ── pinned hero ── */
.t2-hero { height:260vh; }
.t2-hero-sticky { position:sticky; top:0; min-height:100vh; max-height:100vh; display:flex; flex-direction:column; justify-content:flex-start; overflow:hidden; padding:calc(60px + var(--k-s-6)) 0 var(--k-s-6); box-sizing:border-box; }
@media (min-height:1040px){ .t2-hero-sticky { justify-content:center; padding-top:var(--k-s-16); } }
/* fluid tier: scale the whole hero stack with viewport height so it ALWAYS fits 100vh while pinned */
@media (max-height:1039px){
  .t2-h1 { font-size:clamp(1.9rem, min(4.2vw, 5.6vh), 3.6rem); margin-top:var(--k-s-4); }
  .t2-hero-sticky .td-stand { font-size:clamp(0.95rem, 2vh, 1.15rem); margin-top:var(--k-s-4); }
  .t2-hero-sticky .td-cta-row { margin-top:clamp(12px, 2.4vh, 32px) !important; }
  .t2-chain { margin-top:clamp(16px, 4vh, 48px); }
  .t2-node .nd { font-size:clamp(0.72rem, 1.6vh, 0.85rem); }
  .t2-pct { margin-top:clamp(8px, 1.6vh, 24px); }
}
@media (prefers-reduced-motion: reduce){ .t2-hero { height:auto; } .t2-hero-sticky { position:static; min-height:0; max-height:none; overflow:visible; } .t2-chain { --p:1 !important; } .t2-pct { display:none; } }
/* viewport shorter than the hero stack: un-pin entirely — flow as a normal section, chain pre-assembled */
@media (max-height:700px){ .t2-hero { height:auto; } .t2-hero-sticky { position:static; min-height:0; max-height:none; overflow:visible; padding-top:calc(60px + var(--k-s-8)); } .t2-chain { --p:1 !important; } .t2-pct { display:none; } .t2-hero-sticky .t2-wrap { transform:none; } }
.t2-h1 { font-family:var(--k-font-headline); font-weight:400; font-size:clamp(2rem, min(4.6vw, 6.5vh), 4.2rem); line-height:1.08; letter-spacing:-0.015em; color:var(--k-ink); margin:var(--k-s-6) 0 0; max-width:1080px; text-wrap:balance; }
.t2-h1 em { font-style:italic; color:var(--k-accent); }
[data-serif="off"] .t2-h1 { font-family:var(--k-font-ui); font-weight:700; letter-spacing:-0.03em; }

/* ch collapses against Vortigra metrics — pin t2 text measures in px */
.t2 .td-stand { max-width:620px; }
.t2 .td-secstand { max-width:640px; }
.t2 .td-stepbody { max-width:620px; }
.t2 .td-pblock p { max-width:660px; }
.t2 .td-breadth { max-width:760px; }
.t2 .td-h2 { max-width:720px; }

/* chain diagram — driven by --p (0..1) set on .t2-hero via rAF scroll */
.t2-hero { --p:0; }
.t2-chain { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:var(--k-s-5); margin-top:var(--k-s-12); }
.t2-chain::before { content:''; position:absolute; top:6px; left:1%; right:1%; height:2px; background:var(--k-rule); }
.t2-chain::after { content:''; position:absolute; top:6px; left:1%; right:1%; height:2px; background:var(--k-accent); transform:scaleX(var(--p)); transform-origin:left; }
.t2-node { position:relative; padding-top:var(--k-s-7); opacity:calc(0.3 + clamp(0, (var(--p) - var(--t)) * 8, 1) * 0.7); }
.t2-node .nt { transform:translateY(calc((1 - clamp(0, (var(--p) - var(--t)) * 8, 1)) * 12px)); }
.t2-node i { position:absolute; top:0; left:0; width:14px; height:14px; border-radius:var(--k-r-full); border:2px solid var(--k-rule-strong); background:var(--k-bg); box-sizing:border-box; }
.t2-node i::after { content:''; position:absolute; inset:1px; border-radius:var(--k-r-full); background:var(--k-accent); opacity:clamp(0, (var(--p) - var(--t)) * 8, 1); transform:scale(calc(2.2 - clamp(0, (var(--p) - var(--t)) * 8, 1) * 1.2)); }
.t2-packet { position:absolute; top:2px; left:calc(1% + var(--p) * 98%); width:10px; height:10px; margin-left:-5px; border-radius:var(--k-r-full); background:var(--k-accent); box-shadow:0 0 0 4px var(--k-accent-soft); opacity:clamp(0, var(--p) * 10, calc(1 - clamp(0, (var(--p) - 0.92) * 12, 1))); }
.t2-node .nn { font-family:var(--k-font-mono); font-size:var(--k-fs-2xs); color:var(--k-ink-4); }
.t2-node .nl { font-family:var(--k-font-mono); text-transform:uppercase; letter-spacing:0.12em; font-weight:700; font-size:var(--k-fs-sm); color:var(--k-ink); margin:2px 0 var(--k-s-2); }
.t2-node .nd { font-size:var(--k-fs-caption); line-height:var(--k-lh-normal); color:var(--k-ink-2); max-width:24ch; text-wrap:pretty; }
.t2-pct { margin-top:var(--k-s-6); font-family:var(--k-font-mono); font-size:var(--k-fs-2xs); color:var(--k-ink-3); }
@media (max-width:720px){ .t2-chain { grid-template-columns:repeat(2,1fr); row-gap:var(--k-s-8); } .t2-chain::before, .t2-chain::after, .t2-packet { display:none; } .t2-hero { height:200vh; } }

/* stats band */
.t2-stats { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--k-rule); border-radius:var(--k-r-lg); background:var(--k-surface); overflow:hidden; }
@media (max-width:820px){ .t2-stats { grid-template-columns:repeat(2,1fr); } }
.t2-stat { padding:var(--k-s-6) var(--k-s-7); border-left:1px solid var(--k-rule); }
.t2-stat:first-child { border-left:none; }
@media (max-width:820px){ .t2-stat:nth-child(3) { border-left:none; } .t2-stat:nth-child(n+3) { border-top:1px solid var(--k-rule); } }
.t2-stat .v { font-family:var(--k-font-mono); font-variant-numeric:tabular-nums; font-size:clamp(1.8rem, 3.4vw, 2.8rem); font-weight:600; color:var(--k-ink); }
.t2-stat .k { margin-top:var(--k-s-1); font-family:var(--k-font-mono); text-transform:uppercase; letter-spacing:0.1em; font-size:var(--k-fs-3xs); color:var(--k-ink-3); }

/* drawn provenance specimen */
.t2-prov { border:1px solid var(--k-rule-strong); border-radius:var(--k-r-md); background:var(--k-sunken); padding:var(--k-s-5) var(--k-s-6); font-family:var(--k-font-mono); font-size:var(--k-fs-caption); max-width:560px; }
.t2-prov .ph { text-transform:uppercase; letter-spacing:0.12em; font-size:var(--k-fs-3xs); color:var(--k-ink-3); margin-bottom:var(--k-s-3); display:flex; justify-content:space-between; }
.t2-prov .ph b { color:var(--k-pos); font-weight:600; }
.t2-prov dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:4px var(--k-s-5); }
.t2-prov dt { color:var(--k-ink-3); }
.t2-prov dd { margin:0; color:var(--k-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.t2-prov-cap { margin-top:var(--k-s-3); font-family:var(--k-font-mono); font-size:var(--k-fs-2xs); color:var(--k-ink-3); }
@media (prefers-reduced-motion: no-preference){
.t2-prov dt, .t2-prov dd { opacity:0; transform:translateX(-6px); transition:opacity 400ms var(--k-ease), transform 400ms var(--k-ease); }
.t2-prov.in dt, .t2-prov.in dd { opacity:1; transform:none; }
.t2-prov.in dt:nth-of-type(1), .t2-prov.in dd:nth-of-type(1) { transition-delay:120ms; }
.t2-prov.in dt:nth-of-type(2), .t2-prov.in dd:nth-of-type(2) { transition-delay:240ms; }
.t2-prov.in dt:nth-of-type(3), .t2-prov.in dd:nth-of-type(3) { transition-delay:360ms; }
.t2-prov.in dt:nth-of-type(4), .t2-prov.in dd:nth-of-type(4) { transition-delay:480ms; }
.t2-prov .ph b { opacity:0; }
.t2-prov.in .ph b { animation:t2stamp 500ms var(--k-ease) 650ms forwards; }
@keyframes t2stamp { 0% { opacity:0; transform:scale(1.8); } 60% { opacity:1; transform:scale(.95); } 100% { opacity:1; transform:none; } }
}

/* drawn top rules (doors, brief cells) */
@media (prefers-reduced-motion: no-preference){
.t2 .td-door, .t2 .td-briefcell { border-top-color:var(--k-rule); position:relative; }
.t2 .td-door::before, .t2 .td-briefcell::before { content:''; position:absolute; top:-2px; left:0; height:2px; width:100%; background:var(--k-ink); transform:scaleX(0); transform-origin:left; transition:transform 800ms var(--k-ease) calc(var(--d,0ms) + 120ms); }
.t2 .td-door.in::before, .t2 .td-briefcell.in::before { transform:scaleX(1); }
}

/* verify marker — tooltip-only layer */
.t2-vf { display:inline-block; font-family:var(--k-font-mono); font-size:0.7em; font-weight:700; color:var(--k-warn); border-bottom:1px dashed var(--k-warn); cursor:help; vertical-align:super; line-height:1; padding:0 2px; }
.t2-vf[data-prod] { color:var(--k-info); border-bottom-color:var(--k-info); }

/* scheduler slide-over */
.t2-ov { position:fixed; inset:0; z-index:90; background:color-mix(in oklab, var(--k-ink) 32%, transparent); opacity:0; pointer-events:none; transition:opacity 200ms var(--k-ease); }
.t2-ov[data-open] { opacity:1; pointer-events:auto; }
.t2-panel { position:fixed; top:0; right:0; bottom:0; z-index:91; width:min(880px, 100vw); background:var(--k-bg); border-left:1px solid var(--k-rule-strong); box-shadow:var(--k-shadow-3); transform:translateX(102%); transition:transform var(--k-dur-slow) var(--k-ease); overflow-y:auto; padding:var(--k-s-6) var(--k-s-7) var(--k-s-10); box-sizing:border-box; }
.t2-panel[data-open] { transform:none; }
@media (prefers-reduced-motion: reduce){ .t2-ov, .t2-panel { transition:none; } }
.t2-panel-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--k-s-5); }
.t2-panel-top .t { font-family:var(--k-font-mono); text-transform:uppercase; letter-spacing:0.1em; font-size:var(--k-fs-2xs); color:var(--k-ink-3); }

/* misc */
.t2-cap { font-family:var(--k-font-mono); font-size:var(--k-fs-2xs); color:var(--k-ink-3); margin-top:var(--k-s-3); }
.t2-band { padding:var(--k-s-12) 0; }
.t2-doorimg { margin-top:var(--k-s-10); }
.t2-foot-cta { display:flex; align-items:center; gap:var(--k-s-4); flex-wrap:wrap; margin-top:var(--k-s-8); }
