:root{--wool:#e9e6dd;--jute:#8a6d3f;--jute-deep:#6f5730;--indigo:#3f5a78;--indigo-soft:#e2e9f2;--terracotta:#b05c33;--terracotta-soft:#f4e5db;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--shadow-1:0 1px 2px rgba(28,36,48,0.14);--shadow-2:0 6px 18px rgba(28,36,48,0.15),0 0 18px var(--glow-gold);--ease-thread:cubic-bezier(0.3,0.7,0.3,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--weave-line:rgba(122,100,60,0.05);--weave-strong:rgba(122,100,60,0.08);--weave-madder:rgba(163,39,58,0.04)}@media screen{:root[data-theme=dark]{--wool:#131a22;--jute:#c8b088;--jute-deep:#a98f63;--indigo:#7d9cc0;--indigo-soft:#1f2c40;--terracotta:#d98d6a;--terracotta-soft:#33241c;--shadow-1:0 1px 2px rgba(0,0,0,0.45);--shadow-2:0 6px 18px rgba(0,0,0,0.5),0 0 18px var(--glow-gold);--weave-line:rgba(200,176,136,0.05);--weave-strong:rgba(200,176,136,0.07);--weave-madder:rgba(217,107,125,0.04)}}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;transition:opacity .6s ease;background:repeating-linear-gradient(0deg,var(--weave-line) 0 1px,transparent 1px 5px),repeating-linear-gradient(90deg,var(--weave-line) 0 1px,transparent 1px 5px),var(--paper)}html.tex-3d-on body:before{opacity:0}.tex-weave-strong{background:repeating-linear-gradient(45deg,var(--weave-strong) 0 2px,transparent 2px 9px),repeating-linear-gradient(-45deg,var(--weave-madder) 0 2px,transparent 2px 9px),var(--wool)}.tex-divider{display:block;width:100%;height:18px;margin:4px 0 14px;overflow:visible}.tex-divider path{fill:none;stroke:var(--jute);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0;filter:drop-shadow(0 0 6px var(--glow-gold))}.tex-divider--draw path{animation:tex-thread-draw 1s var(--ease-thread) both}@keyframes tex-thread-draw{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.tex-spinner{display:inline-block;line-height:0;vertical-align:-.125em;animation:tex-spin 1.2s linear infinite}@keyframes tex-spin{to{transform:rotate(1turn)}}.tex-lift{transition:transform .22s var(--ease-spring),box-shadow .22s var(--ease-spring)}.tex-lift:hover{transform:perspective(700px) translateY(-3px) rotateX(1.2deg);box-shadow:var(--shadow-2),0 0 20px var(--glow-madder)}.tex-settle{opacity:.55;filter:saturate(.5);transition:opacity .4s,filter .4s}.tex-draw svg *,svg.tex-draw *{stroke-dasharray:60;stroke-dashoffset:0;animation:tex-redraw .9s var(--ease-thread)}@keyframes tex-redraw{0%{stroke-dashoffset:60}to{stroke-dashoffset:0}}.tex-empty{display:flex;flex-direction:column;align-items:center;gap:10px}.tex-empty svg{color:var(--jute);filter:drop-shadow(0 0 6px var(--glow-gold))}.tex-auth-mark{text-align:center;margin:30px 0 4px}.tex-auth-scene{background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);box-shadow:var(--shadow-2)}.tex-auth-scene form button[type=submit]{width:100%;margin-top:var(--sp-3);background:var(--madder);color:var(--on-accent);border:1px solid transparent;border-radius:8px;padding:10px 16px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-btn)}.tex-auth-scene form button[type=submit]:hover:not(:disabled){background:var(--madder-deep)}.tex-auth-scene form button[type=submit]:disabled{background:var(--madder-dim);cursor:not-allowed}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.tex-auth-scene{background:var(--surface)}}.tex-dash-hero{position:relative;height:clamp(140px,18vh,200px);margin:4px 0 14px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--well)}.tex-dash-hero-copy{position:absolute;inset:0 auto 0 0;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 var(--sp-5);max-width:60%}@media (max-width:720px){.tex-dash-hero{height:auto;min-height:120px}.tex-dash-hero-copy{position:relative;inset:auto;max-width:100%;padding:var(--sp-3)}.tex-auth-mark .wordmark{font-size:clamp(22px,7.6vw,30px)}}.display-hero{font-family:var(--display);font-weight:560;font-size:clamp(26px,3.4vw,40px);letter-spacing:-.01em;line-height:1.08;text-wrap:balance}.tex-auth-mark .wordmark{font-size:30px}.tex-underline{display:block;width:min(300px,70%);height:26px;margin:2px auto 20px;overflow:visible}.tex-underline path{fill:none;stroke:url(#tex-dye);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:tex-thread-draw 1.15s .3s var(--ease-thread) forwards}@keyframes tex-rise-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.page-enter main>*{animation:tex-rise-fade .42s var(--ease-thread) both}.page-enter main>:nth-child(2){animation-delay:.12s}.page-enter main>:nth-child(3){animation-delay:.18s}.page-enter main>:nth-child(4){animation-delay:235ms}.page-enter main>:nth-child(5){animation-delay:.29s}.page-enter main>:nth-child(6){animation-delay:345ms}.page-enter main>:nth-child(7){animation-delay:.4s}.page-enter main>:nth-child(8){animation-delay:455ms}.page-enter main>:nth-child(9){animation-delay:.51s}.page-enter main>:nth-child(n+10){animation-delay:.62s}.page-enter main.no-choreo>*,.page-enter main:has(.dsg-container)>*,.page-enter main:has([class^=trk-])>*{animation:none}.page-enter .tex-divider--draw path{animation:tex-thread-draw 1s var(--ease-thread) both,tex-glint 1.5s 1.05s ease-in-out 1}@keyframes tex-glint{0%,to{filter:drop-shadow(0 0 6px var(--glow-gold))}50%{filter:drop-shadow(0 0 11px var(--gold-bright))}}.tex-reveal{opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease-thread),transform .5s var(--ease-thread)}.tex-reveal.is-seen{opacity:1;transform:none}@media print{body:before{display:none}.tex-weave-strong{background:none}.tex-divider{display:none}.tex-spinner{animation:none}}@media (prefers-reduced-motion:reduce){.tex-divider--draw path{animation:none;stroke-dashoffset:0}.tex-spinner{animation:none}.tex-lift,.tex-lift:hover{transition:none;transform:none}.tex-settle{transition:none}.tex-draw svg *,.tex-underline path,svg.tex-draw *{animation:none;stroke-dashoffset:0}.page-enter .tex-divider--draw path,.page-enter main>*{animation:none}.tex-reveal{opacity:1;transform:none;transition:none}}