:root{
  --tt-blue:#101f9a;
  --tt-blue-2:#2539c8;
  --tt-orange:#ff7a00;
  --tt-gold:#ffb000;
  --tt-ink:#161a25;
  --tt-muted:#667085;
  --tt-paper:#f7f8fc;
  --tt-border:#e2e6ef;
  --tt-white:#fff;
  --tt-shadow:0 24px 70px rgba(11,22,65,.12)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--tt-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
/* State visibility must win over grid/flex component display rules. */
#tt-main [hidden],#tt-payment-modal[hidden]{display:none!important}
a{color:inherit}
button,input,select,textarea{font:inherit}
.tt-skip{position:fixed;left:12px;top:-80px;z-index:1000;padding:10px 14px;border-radius:10px;background:#fff;color:#111}
.tt-skip:focus{top:12px}
.tt-site-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px clamp(18px,4vw,58px);background:rgba(9,15,39,.94);backdrop-filter:blur(14px);color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}
.tt-brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.tt-brand img{width:54px;height:54px;object-fit:contain}
.tt-brand strong,.tt-brand small{display:block}
.tt-brand strong{font-size:1.05rem}
.tt-brand small{margin-top:2px;color:#cbd3ff;font-size:.72rem}
.tt-home-link{text-decoration:none;font-weight:850;font-size:.86rem;padding:9px 12px;border:1px solid rgba(255,255,255,.24);border-radius:999px}
.tt-home-link:hover{background:#fff;color:#111}
.tt-state-shell{min-height:75vh;display:grid;place-items:center;padding:50px 20px;background:radial-gradient(circle at 15% 10%,rgba(255,122,0,.13),transparent 28%),linear-gradient(145deg,#11172b,#101f9a)}
.tt-state-card{width:min(660px,100%);padding:48px 34px;text-align:center;border:1px solid rgba(255,255,255,.12);border-radius:30px;background:rgba(255,255,255,.96);box-shadow:var(--tt-shadow)}
.tt-state-card h1{margin:.2rem 0 .75rem;font-size:clamp(2.2rem,7vw,4.4rem);line-height:.98}
.tt-state-card p{color:var(--tt-muted);font-size:1.05rem;line-height:1.65}
.tt-state-card img{width:150px;height:150px;object-fit:contain}
.tt-loader-paw{display:inline-grid;place-items:center;width:72px;height:72px;border-radius:50%;background:#fff1df;font-size:2rem;animation:tt-bounce 1.2s ease-in-out infinite}
@keyframes tt-bounce{50%{transform:translateY(-7px) rotate(-8deg)}}
.tt-eyebrow{margin:0 0 7px;color:var(--tt-blue);font-size:.72rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.tt-eyebrow-light{color:#ffd8a8}
.tt-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#08113c 0%,#101f9a 55%,#263ac6 100%);color:#fff}
.tt-hero::after{content:"";position:absolute;right:-100px;bottom:-220px;width:520px;height:520px;border-radius:50%;border:95px solid rgba(255,122,0,.15)}
.tt-scratch{position:absolute;width:45%;height:8px;background:rgba(255,255,255,.16);transform:rotate(-13deg);filter:blur(.2px)}
.tt-scratch::before,.tt-scratch::after{content:"";position:absolute;inset:auto 0;height:8px;background:inherit}
.tt-scratch::before{top:-24px}.tt-scratch::after{top:24px}
.tt-scratch-one{left:-8%;top:25%}.tt-scratch-two{right:-10%;bottom:18%;transform:rotate(12deg)}
.tt-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:center;gap:46px;width:min(1180px,calc(100% - 40px));min-height:660px;margin:auto;padding:74px 0}
.tt-hero-copy h1{margin:0;font-size:clamp(4.1rem,10vw,8.6rem);line-height:.78;letter-spacing:-.07em}
.tt-hero-copy h2{margin:24px 0 12px;color:#ffb64a;font-size:clamp(2rem,4vw,3.4rem);line-height:1}
.tt-hero-copy>p:not(.tt-eyebrow){max-width:720px;color:#e2e7ff;font-size:clamp(1rem,1.7vw,1.22rem);line-height:1.7}
.tt-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.tt-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 19px;border:0;border-radius:999px;text-decoration:none;font-weight:950;cursor:pointer;transition:.18s ease}
.tt-button:hover{transform:translateY(-2px)}
.tt-button-orange{background:linear-gradient(135deg,#ff8c00,#ff6f00);color:#fff;box-shadow:0 12px 28px rgba(255,122,0,.28)}
.tt-button-ghost{border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.08);color:#fff}
.tt-button-outline-dark{border:1px solid #cbd1df;background:#fff;color:#2a3241}
.tt-preview-badge{display:inline-flex;margin-bottom:18px;padding:7px 11px;border-radius:999px;background:#ffdd8b;color:#382400;font-size:.72rem;font-weight:950;letter-spacing:.06em}
.tt-hero-art{position:relative;display:grid;place-items:center;min-height:430px}
.tt-logo-disc{display:grid;place-items:center;width:min(390px,82vw);aspect-ratio:1;border-radius:50%;background:#0b0d13;border:12px solid var(--tt-orange);box-shadow:0 0 0 14px rgba(255,255,255,.08),0 35px 80px rgba(0,0,0,.28)}
.tt-logo-disc img{width:88%;height:88%;object-fit:contain}
.tt-roar-badge{position:absolute;right:1%;bottom:10%;padding:14px 20px;border-radius:18px;background:#fff;color:#101f9a;transform:rotate(-5deg);box-shadow:0 15px 35px rgba(0,0,0,.25)}
.tt-roar-badge span,.tt-roar-badge strong{display:block}.tt-roar-badge span{font-size:.68rem;font-weight:900;letter-spacing:.15em}.tt-roar-badge strong{font-size:1.65rem}
.tt-section-shell{width:min(1180px,calc(100% - 40px));margin:auto}
.tt-progress-section{position:relative;z-index:5;margin-top:-48px}
.tt-progress-card{padding:28px;border-radius:26px;background:#fff;box-shadow:var(--tt-shadow);border:1px solid rgba(16,31,154,.08)}
.tt-progress-top,.tt-progress-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.tt-progress-top h2{margin:4px 0 0;font-size:clamp(1.6rem,3vw,2.5rem)}
.tt-progress-numbers{text-align:right}.tt-progress-numbers strong{display:block;color:var(--tt-blue);font-size:clamp(2rem,5vw,4rem);line-height:.95}.tt-progress-numbers span{display:block;margin-top:7px;color:var(--tt-muted)}
.tt-progress-track{position:relative;height:26px;margin:23px 0 10px;border-radius:999px;background:#e9edf6;box-shadow:inset 0 2px 8px rgba(0,0,0,.08)}
.tt-progress-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:999px;background:linear-gradient(90deg,var(--tt-orange),#ffb000);transition:width .8s cubic-bezier(.2,.8,.2,1)}
.tt-progress-paw{position:absolute;right:-16px;top:50%;display:grid;place-items:center;width:36px;height:36px;transform:translateY(-50%);border-radius:50%;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.tt-progress-bottom{align-items:center;color:var(--tt-muted);font-size:.9rem}.tt-progress-bottom strong{color:var(--tt-orange);font-size:1.1rem}
.tt-section{padding:88px 0}
.tt-section-heading{max-width:760px;margin-bottom:30px}
.tt-section-heading h2{margin:.1rem 0 .65rem;font-size:clamp(2.2rem,5vw,4.4rem);line-height:.95;letter-spacing:-.045em}
.tt-section-heading>p:not(.tt-eyebrow){color:var(--tt-muted);line-height:1.7;font-size:1.02rem}
.tt-support-section{background:#fff}
.tt-support-tools{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;margin-bottom:20px}
.tt-support-note{margin:-7px 0 20px;color:var(--tt-muted);font-size:.82rem;line-height:1.55}
.tt-search,.tt-filter{display:grid;gap:6px;color:#5b6374;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.tt-search input,.tt-filter select,.tt-shoutout-form input,.tt-shoutout-form select,.tt-shoutout-form textarea{width:100%;border:1px solid var(--tt-border);border-radius:14px;background:#fff;padding:13px 14px;color:var(--tt-ink);outline:none}
.tt-search input:focus,.tt-filter select:focus,.tt-shoutout-form input:focus,.tt-shoutout-form select:focus,.tt-shoutout-form textarea:focus{border-color:#98a5ff;box-shadow:0 0 0 4px rgba(16,31,154,.08)}
.tt-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tt-student-card{position:relative;display:flex;flex-direction:column;min-height:305px;padding:20px;border:1px solid var(--tt-border);border-radius:22px;background:linear-gradient(180deg,#fff,#fafbfe);box-shadow:0 10px 30px rgba(20,31,65,.06)}
.tt-student-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(20,31,65,.1)}
.tt-student-top{display:flex;align-items:center;gap:13px}
.tt-student-avatar{display:grid;place-items:center;width:66px;height:66px;flex:0 0 66px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#101f9a,#3547c9);color:#fff;font-size:1.25rem;font-weight:950}
.tt-student-avatar img{width:100%;height:100%;object-fit:cover}
.tt-student-top h3{margin:0;font-size:1.15rem}.tt-student-top p{margin:4px 0 0;color:var(--tt-muted);font-size:.85rem}
.tt-student-total{margin:22px 0 7px;color:var(--tt-blue);font-size:2rem;font-weight:950}
.tt-student-total[data-hidden="true"]{font-size:1rem;color:var(--tt-muted)}
.tt-mini-progress{height:9px;border-radius:999px;background:#e9edf6;overflow:hidden}.tt-mini-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff7900,#ffb000)}
.tt-student-goal{margin:7px 0 18px;color:var(--tt-muted);font-size:.78rem}
.tt-student-card .tt-button{margin-top:auto;width:100%}
.tt-empty{padding:28px;text-align:center;border:1px dashed #cfd4df;border-radius:18px;color:var(--tt-muted)}
.tt-leaderboard-section{background:linear-gradient(135deg,#08113c,#101f9a);color:#fff}
.tt-heading-light>p:not(.tt-eyebrow){color:#cbd3f8}
.tt-leaderboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tt-board{padding:24px;border:1px solid rgba(255,255,255,.15);border-radius:24px;background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}
.tt-board-head{display:flex;align-items:center;gap:13px;margin-bottom:16px}.tt-board-head p{margin:0;color:#c8d0f7;font-size:.74rem;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.tt-board-head h3{margin:2px 0 0;font-size:1.45rem}.tt-trophy{font-size:2rem}
.tt-board-list{display:grid;gap:8px}
.tt-board-row{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:12px;border-radius:14px;background:rgba(255,255,255,.08)}
.tt-board-row:nth-child(1){background:linear-gradient(90deg,rgba(255,176,0,.2),rgba(255,255,255,.08))}
.tt-board-rank{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#fff;color:#101f9a;font-weight:950}
.tt-board-row strong{display:block}.tt-board-row small{display:block;margin-top:2px;color:#c9d0ef}.tt-board-amount{font-weight:950;color:#ffd08b}
.tt-board-person{display:flex;align-items:center;gap:9px;min-width:0}
.tt-board-avatar{display:block;width:38px;height:38px;flex:0 0 38px;border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.7)}
.tt-board-avatar img{width:100%;height:100%;object-fit:cover}
.tt-prize-callout{margin-top:16px;padding:12px 14px;border-radius:14px;background:rgba(255,122,0,.17);color:#ffdda9;font-weight:800}
.tt-prizes-section{background:var(--tt-paper)}
.tt-milestone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tt-milestone{position:relative;overflow:hidden;padding:22px;border:1px solid var(--tt-border);border-radius:22px;background:#fff}
.tt-milestone::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#ccd2df}
.tt-milestone[data-unlocked="true"]::before{background:linear-gradient(#ff7900,#ffb000)}
.tt-milestone .tt-lock{font-size:1.4rem}.tt-milestone h3{margin:14px 0 6px}.tt-milestone p{color:var(--tt-muted);line-height:1.55}.tt-milestone strong{display:block;margin-top:12px;color:var(--tt-blue)}
.tt-shoutout-section{background:radial-gradient(circle at 80% 20%,rgba(255,176,0,.22),transparent 28%),linear-gradient(135deg,#11172b,#101f9a);color:#fff}
.tt-shoutout-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:34px;align-items:center}
.tt-shoutout-copy h2{margin:.1rem 0 14px;font-size:clamp(2.6rem,6vw,5.4rem);line-height:.92;letter-spacing:-.05em}
.tt-shoutout-copy p:not(.tt-eyebrow){max-width:520px;color:#d6dcfa;line-height:1.7}
.tt-megaphone{font-size:7rem;filter:drop-shadow(0 20px 30px rgba(0,0,0,.2));transform:rotate(-10deg)}
.tt-shoutout-form{position:relative;padding:28px;border-radius:24px;background:#fff;color:var(--tt-ink);box-shadow:0 26px 70px rgba(0,0,0,.25)}
.tt-shoutout-price{position:absolute;right:22px;top:-28px;display:grid;place-items:center;width:100px;height:100px;border-radius:50%;background:var(--tt-orange);color:#fff;transform:rotate(6deg);box-shadow:0 14px 30px rgba(255,122,0,.35)}
.tt-shoutout-price span{font-size:.64rem;text-transform:uppercase;font-weight:900}.tt-shoutout-price strong{font-size:1.55rem}
.tt-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.tt-form-grid .full{grid-column:1/-1}.tt-form-grid label{display:grid;gap:6px;color:#4e5668;font-size:.77rem;font-weight:850}.tt-form-grid textarea{resize:vertical}
.tt-honey{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.tt-message-counter{text-align:right;margin:5px 0 14px;color:#7a8190;font-size:.75rem}
.tt-form-status{min-height:22px;margin:10px 0 0;font-weight:800}.tt-form-status[data-type="error"]{color:#a92525}.tt-form-status[data-type="success"]{color:#1b7c40}
.tt-form-note{color:#747b89;font-size:.76rem;line-height:1.5}
.tt-final-cta{background:#fff}
.tt-final-card{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:24px;padding:26px;border:1px solid var(--tt-border);border-radius:24px;background:linear-gradient(120deg,#fff8ed,#f5f7ff)}
.tt-final-card img{width:100px;height:100px;object-fit:contain}.tt-final-card h2{margin:.2rem 0 .4rem;font-size:clamp(1.7rem,3vw,2.8rem)}.tt-final-card p:not(.tt-eyebrow){margin:0;color:var(--tt-muted)}
.tt-footer{display:flex;justify-content:space-between;gap:20px;padding:28px clamp(18px,4vw,58px);background:#0a0e1c;color:#c3cae3;font-size:.78rem}
.tt-payment-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(3,7,20,.72);backdrop-filter:blur(8px)}
.tt-payment-modal[hidden]{display:none}
.tt-payment-dialog{position:relative;width:min(530px,100%);padding:34px;border-radius:26px;background:#fff;box-shadow:0 30px 100px rgba(0,0,0,.35);text-align:center}
.tt-payment-dialog h2{margin:.2rem 0 12px;font-size:2rem}.tt-payment-dialog p{color:var(--tt-muted);line-height:1.55}
.tt-payment-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#eff1f6;font-size:1.4rem;cursor:pointer}
.tt-payment-code{margin:14px 0;padding:15px;border:2px dashed #ff9b38;border-radius:14px;background:#fff7ec;color:#8c4b00;font:950 1.6rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
.tt-payment-dialog .tt-button{width:100%;margin-top:9px}


.tt-class-support{margin-top:44px;padding-top:34px;border-top:1px solid var(--tt-border)}
.tt-subheading{margin-bottom:18px}.tt-subheading h3{margin:.1rem 0;font-size:clamp(1.6rem,3vw,2.5rem)}
.tt-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tt-class-card{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--tt-border);border-radius:20px;background:#fff}
.tt-class-card h4{margin:.1rem 0 .3rem;font-size:1.12rem}.tt-class-card p{margin:0;color:var(--tt-muted);font-size:.84rem}
.tt-class-total{margin-top:8px;color:var(--tt-blue);font-size:1.55rem;font-weight:950}
.tt-class-card small{color:var(--tt-muted)}
.tt-class-card .tt-button{margin-top:auto;width:100%}
@media(max-width:900px){
  .tt-hero-inner,.tt-shoutout-layout{grid-template-columns:1fr}
  .tt-hero-inner{padding:60px 0 86px}
  .tt-hero-art{min-height:340px}
  .tt-logo-disc{width:min(320px,78vw)}
  .tt-student-grid,.tt-class-grid,.tt-milestone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tt-leaderboard-grid{grid-template-columns:1fr}
  .tt-final-card{grid-template-columns:80px 1fr}.tt-final-card .tt-button{grid-column:1/-1}
}
@media(max-width:640px){
  .tt-site-header{padding:8px 14px}.tt-brand small{display:none}.tt-brand img{width:48px;height:48px}
  .tt-home-link{font-size:.75rem}
  .tt-hero-inner,.tt-section-shell{width:min(100% - 28px,1180px)}
  .tt-hero-copy h1{font-size:clamp(4rem,21vw,6.5rem)}
  .tt-hero-art{min-height:300px}
  .tt-progress-section{margin-top:-32px}.tt-progress-card{padding:20px}
  .tt-progress-top{align-items:flex-start;flex-direction:column}.tt-progress-numbers{text-align:left}
  .tt-progress-bottom{align-items:flex-start;flex-direction:column;gap:4px}
  .tt-section{padding:64px 0}
  .tt-support-tools,.tt-student-grid,.tt-class-grid,.tt-milestone-grid,.tt-form-grid{grid-template-columns:1fr}
  .tt-form-grid .full{grid-column:auto}
  .tt-shoutout-form{padding:24px 18px}.tt-shoutout-price{position:static;width:auto;height:auto;display:flex;justify-content:space-between;gap:15px;margin:-4px 0 18px;padding:10px 14px;border-radius:14px;transform:none}
  .tt-megaphone{font-size:4.5rem}
  .tt-final-card{grid-template-columns:1fr;text-align:center}.tt-final-card img{margin:auto}
  .tt-footer{flex-direction:column;text-align:center}
}

/* Student sharing and direct student links. */
.tt-student-top>div:last-child{min-width:0}
.tt-student-top h3,.tt-student-top p{overflow-wrap:anywhere}
.tt-student-actions{display:grid;gap:9px;margin-top:auto}
.tt-student-actions .tt-button{min-width:0;margin-top:0;padding:11px 16px;line-height:1.35;text-align:center;white-space:normal;overflow-wrap:anywhere}
.tt-student-actions .tt-student-share{gap:8px;min-height:44px;font-size:.88rem;font-weight:850;border-color:#cdd5e5;color:var(--tt-blue);background:#fff;box-shadow:none}
.tt-student-share svg{width:18px;height:18px;flex:0 0 18px}
.tt-student-share-status{margin:9px 0 0;color:var(--tt-muted);font-size:.8rem;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.tt-student-share-status[data-type="success"]{color:#176d39}
.tt-student-share-status[data-type="error"]{color:#a92525}
.tt-student-share-status[data-type="info"]{color:var(--tt-blue)}
.tt-student-card.is-selected{border-color:#f4a252;box-shadow:0 0 0 3px rgba(255,122,0,.12),0 12px 32px rgba(20,31,65,.08)}
.tt-student-selection,.tt-student-card.is-selected{scroll-margin-top:120px}
.tt-student-selection{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 22px;padding:15px 18px;border:1px solid #f1d4ad;border-left:4px solid var(--tt-orange);border-radius:16px;background:#fff8ef}
.tt-student-selection p{flex:1;min-width:0;margin:0;color:#623d19;font-size:.95rem;font-weight:800;line-height:1.5;overflow-wrap:anywhere}
.tt-student-selection .tt-button{flex:0 0 auto;max-width:100%;padding:10px 17px;line-height:1.35;white-space:normal;text-align:center}
#tt-student-selection[hidden],.tt-student-share-status[hidden],.tt-share-dialog[hidden],.tt-share-dialog [hidden]{display:none!important}
.tt-share-dialog{width:min(560px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--tt-border);border-radius:24px;background:#fff;color:var(--tt-ink);box-shadow:0 28px 90px rgba(0,0,0,.32);overflow:auto}
.tt-share-dialog::backdrop{background:rgba(5,10,31,.72);backdrop-filter:blur(5px)}
.tt-share-dialog-content{min-width:0;margin:0;padding:28px}
.tt-share-dialog-content header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
#tt-share-title{min-width:0;margin:4px 0 0;font-size:clamp(1.35rem,5vw,1.8rem);line-height:1.2;letter-spacing:-.025em;overflow-wrap:anywhere}
.tt-share-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid #dfe4ee;border-radius:50%;background:#fff;color:#252a37;font-size:1.5rem;line-height:1;cursor:pointer}
#tt-share-help{margin:16px 0 20px;color:var(--tt-muted);font-size:.93rem;line-height:1.55;overflow-wrap:anywhere}
.tt-share-dialog-content>label{display:grid;gap:8px;min-width:0}
#tt-share-link-label{display:grid;gap:8px;min-width:0;color:#4e5668;font-size:.82rem;font-weight:850}
#tt-share-link{display:block;width:100%;min-width:0;min-height:48px;padding:12px 13px;border:1px solid #d3daea;border-radius:12px;background:var(--tt-paper);color:var(--tt-ink);font-size:.88rem;line-height:1.4}
.tt-share-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px}
.tt-share-dialog-actions .tt-button{min-width:140px;padding:11px 18px;line-height:1.35;text-align:center;white-space:normal}
#tt-share-status{font-size:.83rem;line-height:1.5;overflow-wrap:anywhere}
.tt-student-actions .tt-button:focus-visible,#tt-show-all-students:focus-visible,.tt-share-dialog button:focus-visible,#tt-share-link:focus-visible{outline:3px solid var(--tt-blue);outline-offset:3px}
.tt-student-actions .tt-button:disabled,.tt-share-dialog button:disabled{opacity:.6;cursor:not-allowed;transform:none}
@media(max-width:520px){
  .tt-student-selection{align-items:stretch;flex-direction:column;gap:12px;padding:14px}
  .tt-student-selection .tt-button{width:100%}
  .tt-share-dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px);border-radius:20px}
  .tt-share-dialog-content{padding:22px 18px}
  .tt-share-dialog-content header{gap:10px}
  .tt-share-dialog-actions{flex-direction:column}
  .tt-share-dialog-actions .tt-button{width:100%;min-width:0}
}


/* Full Tiger Tribe + DasherOS footer on Tiger Trot. */
.tt-footer{display:block;padding:0;background:#050505;color:#fff;font-size:1rem;text-align:left}
.tt-footer p{margin-top:0}
.tt-footer a{color:inherit}
.tt-footer-main{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:50px;padding:60px max(24px,calc((100% - 1180px)/2))}
.tt-footer-brand img{display:block;width:170px;max-width:100%;height:auto}
.tt-footer-brand p{margin:26px 0 0;color:#fff;font-size:1rem}
.tt-footer-links h2{margin:0 0 12px;color:var(--tt-orange);font-size:1rem;text-transform:uppercase}
.tt-footer-links a{display:block;width:max-content;max-width:100%;margin:8px 0;color:#ddd;text-decoration:none;line-height:1.5;overflow-wrap:anywhere}
.tt-footer-links a:hover,.tt-footer-links a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:4px}
.tt-footer-admin{margin-top:22px!important;padding-top:16px;border-top:1px solid rgba(255,255,255,.15);font-weight:850}
.tt-dasheros-credit{display:grid;grid-template-columns:minmax(220px,350px) 1fr;align-items:center;gap:34px;padding:30px max(24px,calc((100% - 1180px)/2));border-top:1px solid rgba(255,255,255,.12);background:#0e0e0e}
.tt-dasheros-logo{display:block}
.tt-dasheros-logo img{display:block;width:min(350px,100%);height:auto}
.tt-dasheros-credit p{margin:0 0 14px;color:#fff;line-height:1.55}
.tt-dasheros-credit p a{color:#fff}
.tt-dasheros-slogan{color:#ff9a3d!important;font-weight:800}
.tt-footer-action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.tt-footer-pill{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 16px;border:1px solid rgba(255,255,255,.35);border-radius:999px;color:#fff!important;text-decoration:none;font-weight:800}
.tt-footer-pill:hover,.tt-footer-pill:focus-visible{border-color:#fff;background:#fff;color:#111!important}
.tt-footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:18px max(24px,calc((100% - 1180px)/2));border-top:1px solid rgba(255,255,255,.1);color:#aaa;font-size:.78rem}
.tt-footer-bottom p{margin:0}
.tt-footer a:focus-visible{outline:3px solid var(--tt-orange);outline-offset:3px}
@media(max-width:780px){
  .tt-footer-main,.tt-dasheros-credit{grid-template-columns:1fr}
  .tt-footer-main{gap:34px;padding-top:42px;padding-bottom:42px}
  .tt-footer-brand{text-align:center}
  .tt-footer-brand img{margin:0 auto}
  .tt-footer-links{text-align:center}
  .tt-footer-links a{width:auto;margin:10px 0}
  .tt-dasheros-credit{text-align:center;gap:22px}
  .tt-dasheros-logo img{margin:0 auto}
  .tt-footer-action-row{justify-content:center}
  .tt-footer-bottom{flex-direction:column;align-items:center;text-align:center}
}
@media(max-width:420px){
  .tt-footer-main,.tt-dasheros-credit,.tt-footer-bottom{padding-left:18px;padding-right:18px}
  .tt-footer-brand img{width:145px}
  .tt-dasheros-logo img{width:min(300px,100%)}
  .tt-footer-pill{flex:1 1 120px}
}


/* Tiger Trot 2026-11-01 — vertical autoplay hero video */
.tt-hero-video-art {
  position:relative;
  min-height:560px;
  isolation:isolate;
}
.tt-hero-video-art::before {
  content:"";
  position:absolute;
  z-index:-2;
  width:min(430px,34vw);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 50% 50%,rgba(255,121,0,.16) 0 31%,transparent 32%),
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.07) 0 54%,transparent 55%);
  box-shadow:0 0 0 38px rgba(255,255,255,.035);
}
.tt-hero-video-shell {
  position:relative;
  width:clamp(250px,23vw,310px);
  aspect-ratio:9/16;
  overflow:hidden;
  border:6px solid var(--tt-orange);
  border-radius:34px;
  background:#080d24;
  box-shadow:
    0 0 0 9px rgba(255,255,255,.12),
    0 28px 70px rgba(0,0,0,.38);
}
.tt-hero-video {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#080d24;
}
.tt-hero-video[hidden] { display:none!important; }
.tt-hero-video-fallback {
  position:absolute;
  inset:0;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:9px;
  padding:32px;
  color:#fff;
  background:
    radial-gradient(circle at 50% 34%,rgba(255,121,0,.26),transparent 33%),
    linear-gradient(180deg,#0c174f,#071035);
  text-align:center;
}
.tt-hero-video-fallback[hidden] { display:none!important; }
.tt-hero-video-fallback img {
  width:72%;
  max-width:190px;
  padding:10px;
  border-radius:22px;
  background:#fff;
}
.tt-hero-video-fallback strong {
  margin-top:5px;
  font-size:1.35rem;
}
.tt-hero-video-fallback span {
  color:#ffbf68;
  font-size:.84rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.tt-hero-video-controls {
  position:absolute;
  z-index:4;
  left:50%;
  bottom:13px;
  display:flex;
  align-items:center;
  gap:6px;
  transform:translateX(-50%);
  padding:5px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(4,8,24,.72);
  box-shadow:0 8px 25px rgba(0,0,0,.24);
  backdrop-filter:blur(10px);
}
.tt-hero-video-controls[hidden] { display:none!important; }
.tt-video-control {
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 9px;
  border:0;
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.09);
  font:inherit;
  font-size:.68rem;
  font-weight:900;
  cursor:pointer;
}
.tt-video-control:hover,
.tt-video-control:focus-visible {
  background:rgba(255,255,255,.18);
}
.tt-video-control:focus-visible {
  outline:2px solid #fff;
  outline-offset:2px;
}
.tt-video-control svg {
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tt-video-control .tt-video-pause-icon,
.tt-video-control .tt-video-play-icon {
  fill:currentColor;
  stroke:none;
}
.tt-video-control .tt-video-play-icon { display:none; }
.tt-video-control.is-paused .tt-video-pause-icon { display:none; }
.tt-video-control.is-paused .tt-video-play-icon { display:block; }

.tt-video-logo-badge {
  position:absolute;
  z-index:5;
  left:2%;
  top:7%;
  width:100px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  padding:8px;
  border:4px solid var(--tt-orange);
  border-radius:50%;
  background:#fff;
  box-shadow:0 14px 34px rgba(0,0,0,.28);
  transform:rotate(-6deg);
}
.tt-video-logo-badge img {
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:50%;
}
.tt-video-roar-badge {
  right:0;
  bottom:12%;
  z-index:5;
}

@media(max-width:900px){
  .tt-hero-video-art {
    min-height:auto;
    margin-top:8px;
    padding:14px 0 42px;
  }
  .tt-hero-video-art::before {
    width:min(430px,78vw);
  }
  .tt-hero-video-shell {
    width:min(310px,72vw);
  }
  .tt-video-logo-badge {
    left:calc(50% - 190px);
    top:2%;
  }
  .tt-video-roar-badge {
    right:calc(50% - 200px);
    bottom:12%;
  }
}
@media(max-width:640px){
  .tt-hero-inner {
    padding-bottom:104px;
  }
  .tt-hero-video-art {
    padding-top:20px;
    padding-bottom:34px;
  }
  .tt-hero-video-shell {
    width:min(300px,82vw);
    border-width:5px;
    border-radius:30px;
  }
  .tt-video-logo-badge {
    left:max(0px,calc(50% - 178px));
    top:4%;
    width:82px;
    border-width:3px;
  }
  .tt-video-roar-badge {
    right:max(0px,calc(50% - 184px));
    bottom:10%;
    padding:10px 14px;
    border-radius:14px;
  }
  .tt-video-roar-badge strong { font-size:1.25rem; }
  .tt-video-control {
    min-height:32px;
    padding:5px 8px;
    font-size:.64rem;
  }
}
@media(prefers-reduced-motion:reduce){
  .tt-hero-video,
  .tt-video-logo-badge,
  .tt-video-roar-badge {
    animation:none!important;
    transition:none!important;
  }
}


/* Tiger Trot 2026-11-01 — social video share */
.tt-video-share-button {
  position:absolute;
  z-index:6;
  left:50%;
  bottom:-2px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:9px 15px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,#ff8c00,#ff6f00);
  box-shadow:0 14px 32px rgba(0,0,0,.24),0 8px 22px rgba(255,122,0,.2);
  transform:translate(-50%,100%);
  font:inherit;
  font-size:.76rem;
  font-weight:950;
  cursor:pointer;
  white-space:nowrap;
}
.tt-video-share-button:hover {
  transform:translate(-50%,calc(100% - 2px));
}
.tt-video-share-button:focus-visible {
  outline:2px solid #fff;
  outline-offset:3px;
}
.tt-video-share-button svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tt-video-share-button.is-working {
  pointer-events:none;
  opacity:.78;
}
.tt-video-share-button.is-success {
  background:linear-gradient(135deg,#1c8a4b,#0f6f39);
}
@media(max-width:900px){
  .tt-video-share-button {
    bottom:31px;
    transform:translate(-50%,100%);
  }
  .tt-video-share-button:hover {
    transform:translate(-50%,calc(100% - 2px));
  }
}
@media(max-width:640px){
  .tt-video-share-button {
    bottom:24px;
    min-height:40px;
    padding:8px 14px;
    font-size:.72rem;
  }
}
