:root{--bg:#f1f1ef;--ink:#111;--muted:#555;--accent:#ff5c00;--pad:5vw;
--body:'Inter',system-ui,sans-serif;--head:'Bricolage Grotesque',system-ui,sans-serif}
*{margin:0;padding:0;box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}
body{font-family:var(--body);background:var(--bg);color:var(--ink);line-height:1.7}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(255,92,0,.3);transition:border-color .2s,color .2s}
a:hover{border-color:var(--accent)}
::selection{background:var(--ink);color:var(--bg)}

.tm-hero{position:relative;padding:9rem var(--pad) 4rem;background:var(--bg);overflow:hidden}
.tm-hero-in{max-width:1200px;margin:0 auto}
.tm-kick{display:block;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.6rem}
.tm-title{font-family:var(--head);font-weight:800;font-size:clamp(2.4rem,6vw,5rem);line-height:1.04;letter-spacing:-.03em;max-width:20ch}
.tm-title em{font-style:normal;color:var(--accent)}
.line{display:block;overflow:hidden;padding:.05em 0}
.line>span{display:block;transform:translateY(110%);transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
.line:nth-child(2)>span{transition-delay:.12s}
body.loaded .line>span{transform:translateY(0)}
.tm-sub{margin-top:1.8rem;max-width:62ch;color:var(--muted);font-size:clamp(1rem,1.4vw,1.1rem)}
.tm-updated{margin-top:2rem;display:inline-block;padding:.5rem 1rem;border:1px dashed var(--accent);border-radius:999px;font-size:.82rem;color:var(--muted);font-family:'Kalam',cursive;font-weight:700}
.tm-updated b{color:var(--ink);font-family:var(--body);font-weight:700;margin-left:.4rem}

.tm-body{padding:4rem var(--pad) 6rem}
.tm-layout{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:280px 1fr;gap:4rem;align-items:start}

.tm-toc{position:sticky;top:100px;max-height:calc(100vh - 120px);overflow-y:auto;padding-right:1rem}
.tm-toc-kick{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2rem;padding-left:.9rem}
.tm-toc-list{display:flex;flex-direction:column;gap:.2rem;border-left:2px solid rgba(17,17,17,.1)}
.tm-toc-list a{display:block;padding:.5rem .9rem;font-size:.85rem;color:var(--muted);border-left:2px solid transparent;margin-left:-2px;border-bottom:none;transition:all .2s}
.tm-toc-list a b{display:inline-block;width:1.8rem;color:rgba(17,17,17,.3);font-weight:700;font-size:.78rem}
.tm-toc-list a:hover{color:var(--ink);border-left-color:rgba(255,92,0,.4)}
.tm-toc-list a.on{color:var(--ink);border-left-color:var(--accent);background:rgba(255,92,0,.06)}
.tm-toc-list a.on b{color:var(--accent)}

.tm-content{display:flex;flex-direction:column;gap:5rem;max-width:760px}
.tm-section{position:relative;padding-left:3.5rem;scroll-margin-top:100px}
.tm-num{position:absolute;left:0;top:-.2rem;font-family:var(--head);font-weight:800;font-size:2.4rem;color:var(--accent);opacity:.35;letter-spacing:-.02em;line-height:1}
.tm-section h2{font-family:var(--head);font-weight:700;font-size:clamp(1.5rem,2.4vw,1.9rem);letter-spacing:-.02em;margin-bottom:1.2rem;line-height:1.15}
.tm-section p{color:#333;font-size:1rem;margin-bottom:1rem}
.tm-section p:last-child{margin-bottom:0}
.tm-section b{color:var(--ink);font-weight:600}

.tm-list{list-style:none;margin:1rem 0 1.4rem;padding:0;display:flex;flex-direction:column;gap:.55rem}
.tm-list li{position:relative;padding-left:1.4rem;font-size:.96rem;color:#333;line-height:1.6}
.tm-list li::before{content:"";position:absolute;left:0;top:.7rem;width:6px;height:6px;background:var(--accent);border-radius:50%}
.tm-list li b{color:var(--ink)}

.tm-contact{margin:1.2rem 0;padding:1.6rem 1.8rem;background:#fff;border:1px solid rgba(17,17,17,.1);border-radius:14px;display:flex;flex-direction:column;gap:.3rem;font-size:.95rem}
.tm-contact b{font-family:var(--head);font-weight:800;font-size:1.2rem;color:var(--ink);margin-bottom:.4rem}
.tm-contact span{color:#444}
.tm-contact a{font-weight:600}
.tm-updated-inline{margin-top:1rem;font-size:.82rem;color:var(--muted);font-family:'Kalam',cursive}

.tm-cta{background:#0a0a0a;color:#f1f1ef;text-align:center;padding:5.5rem var(--pad) 6.5rem}
.tm-cta h2{font-family:var(--head);font-weight:800;font-size:clamp(1.8rem,5vw,3.6rem);line-height:1.08;letter-spacing:-.02em}
.tm-cta p{margin:1.2rem auto 2rem;color:rgba(241,241,239,.6);max-width:40ch}
.ab-btn{display:inline-flex;align-items:center;gap:.6rem;background:var(--accent);color:#0a0a0a;font-weight:700;padding:1.05rem 2rem;border-radius:999px;transition:transform .3s;border-bottom:none}
.ab-btn svg{width:16px;height:16px;transition:transform .25s}
.ab-btn:hover{transform:translateY(-3px);color:#0a0a0a;border-bottom:none}
.ab-btn:hover svg{transform:translateX(4px)}

.rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

.tm-toc-toggle{display:none;background:none;border:1px solid rgba(17,17,17,.15);padding:.8rem 1.2rem;border-radius:12px;font:inherit;font-weight:600;font-size:.95rem;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;width:100%;margin-bottom:1.2rem;transition:all .2s}
.tm-toc-toggle svg{width:14px;height:14px;transition:transform .25s}
.tm-toc-toggle.open svg{transform:rotate(180deg)}
.tm-toc-toggle.open{border-color:var(--accent);color:var(--accent)}

@media(max-width:900px){
.tm-hero{padding:7rem var(--pad) 3rem}
.tm-body{padding:2.5rem var(--pad) 4rem}
.tm-layout{grid-template-columns:1fr;gap:2.5rem}
.tm-toc{position:static;max-height:none;padding:0;overflow:visible}
.tm-toc-kick{display:none}
.tm-toc-toggle{display:flex}
.tm-toc-list{max-height:0;overflow:hidden;transition:max-height .4s ease;border-left:none}
.tm-toc-list.open{max-height:2000px;border-left:2px solid rgba(17,17,17,.1)}
.tm-content{gap:3.5rem}
.tm-section{padding-left:2.6rem}
.tm-num{font-size:2rem}
}

@media(max-width:600px){
.tm-section{padding-left:2.2rem}
.tm-section h2{font-size:1.4rem}
}

.tm-toc::-webkit-scrollbar{width:4px}
.tm-toc::-webkit-scrollbar-thumb{background:rgba(17,17,17,.15);border-radius:4px}

.cur-dot,.cur-ring{position:fixed;left:0;top:0;pointer-events:none;border-radius:50%;z-index:9999}
.cur-dot{width:6px;height:6px;background:var(--ink);transition:opacity .3s}
.cur-ring{width:38px;height:38px;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;transition:width .3s,height .3s,background .3s,border-color .3s}
.cur-ring-text{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:transparent;transition:color .25s}
.cur-ring.hovered{background:rgba(127,127,127,.12);border-color:transparent}
@media(hover:none){.cur-dot,.cur-ring{display:none}}

.foot2{background:#0a0a0a;color:#e8e8e6;padding:6rem var(--pad) 2rem;position:relative}
.foot2 a{border-bottom:none}
.f2-top{display:flex;justify-content:space-between;gap:3rem;flex-wrap:wrap}
.f2-left h2{font-family:var(--head);font-weight:600;letter-spacing:-.02em;line-height:1.15;font-size:clamp(1.8rem,4vw,3.4rem);max-width:640px;color:#f1f1ef}
.f2-btn{display:inline-flex;align-items:center;gap:.7rem;margin-top:2.5rem;background:var(--accent);color:#0a0a0a;font-weight:700;padding:1rem 1.6rem;border-radius:8px;transition:transform .25s}
.f2-btn:hover{transform:translateY(-3px);color:#0a0a0a}
.f2-btn svg{width:16px;height:16px}
.f2-right{display:flex;gap:5rem}
.f2-col{display:flex;flex-direction:column;gap:1.1rem;font-size:.95rem}
.f2-col a{color:#bdbdbb;transition:color .2s}
.f2-col a:hover{color:#fff}
.f2-label{color:#6f6f6d;font-size:.8rem;margin-bottom:.4rem}
.f2-divider{height:1px;background:rgba(255,255,255,.12);margin:4rem 0 2rem}
.f2-matrix{position:relative;height:34vh;min-height:220px}
.f2-matrix canvas{position:absolute;inset:0;width:100%;height:100%}
.f2-bottom{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-top:1.5rem;color:#6f6f6d;font-size:.85rem;flex-wrap:wrap}
.f2-bottom a{color:#6f6f6d}
.f2-bottom a:hover{color:#fff}
.f2-social{display:flex;gap:1.6rem}
.f2-social a{color:#bdbdbb;font-weight:600}
.f2-social a:hover{color:#fff}
@media(max-width:900px){
.f2-top{flex-direction:column}
.f2-right{gap:3rem}
.f2-matrix{height:22vh}
}

.tm-section h3{font-family:var(--body);font-weight:600;font-size:1.05rem;color:var(--ink);margin:1.6rem 0 .6rem;letter-spacing:-.01em}