*{box-sizing:border-box}
:root{
  color-scheme:light;
  --thpt-scene:url("/anh-art/tra-cuu-dawn-v30.webp");
  --thpt-veil:linear-gradient(120deg,rgba(229,239,237,.36),rgba(238,229,211,.44));
  --thpt-surface:linear-gradient(145deg,rgba(255,253,246,.86),rgba(238,245,242,.72));
  --thpt-surface-strong:rgba(252,249,240,.94);
  --thpt-panel:rgba(249,246,237,.72);
  --thpt-ink:#142c34;
  --thpt-ink-soft:#52646a;
  --thpt-line:rgba(20,44,52,.16);
  --thpt-coral:#bd513f;
  --thpt-gold:#a8762f;
  --thpt-teal:#246f78;
  --thpt-indigo:#51659a;
  --thpt-glow:rgba(255,247,224,.65);
  --thpt-shadow:0 26px 80px rgba(24,49,54,.18),inset 0 1px rgba(255,255,255,.72)
}
html[data-mode="dark"]{
  color-scheme:dark;
  --thpt-scene:url("/anh-art/tra-cuu-night-v30.webp");
  --thpt-veil:linear-gradient(118deg,rgba(4,17,31,.20),rgba(10,20,37,.38));
  --thpt-surface:linear-gradient(140deg,rgba(20,43,55,.83),rgba(12,24,43,.78));
  --thpt-surface-strong:rgba(17,35,48,.94);
  --thpt-panel:rgba(13,31,44,.70);
  --thpt-ink:#f6f1e5;
  --thpt-ink-soft:#c2cfce;
  --thpt-line:rgba(227,239,233,.18);
  --thpt-coral:#f08b77;
  --thpt-gold:#e0bd78;
  --thpt-teal:#86d4d2;
  --thpt-indigo:#aab9f2;
  --thpt-glow:rgba(232,195,123,.12);
  --thpt-shadow:0 30px 90px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.10)
}
html{min-height:100%;scroll-behavior:smooth;background:#dce5e4}
html[data-mode="dark"]{background:#071320}
body{margin:0;min-height:100dvh;overflow-x:hidden;background-color:#dce5e4;background-image:var(--thpt-veil),var(--thpt-scene);background-position:center top;background-size:cover;background-attachment:fixed;color:var(--thpt-ink);font-family:var(--tl-font-ui);font-size:16px;line-height:1.5}
body::before,body::after{content:"";position:fixed;pointer-events:none;z-index:0}
body::before{inset:0;background:radial-gradient(circle at 13% 10%,color-mix(in srgb,var(--thpt-gold) 18%,transparent),transparent 31%),radial-gradient(circle at 86% 75%,color-mix(in srgb,var(--thpt-teal) 15%,transparent),transparent 32%)}
body::after{inset:0;opacity:.23;background-image:radial-gradient(circle at 30% 20%,currentColor .5px,transparent .75px);background-size:11px 11px;mask-image:linear-gradient(to bottom,black,transparent 75%)}
button,a{font:inherit}
button{color:inherit}
a{color:inherit}
[hidden]{display:none!important}
.thpt-shell{position:relative;z-index:1;width:min(100%,1180px);min-height:100dvh;margin:0 auto;padding:18px clamp(12px,2.3vw,28px) 28px}
.thpt-topbar{display:grid;grid-template-columns:44px 46px minmax(0,1fr) 44px;gap:10px;align-items:center;min-height:66px;margin-bottom:14px;padding:10px 12px;border:1px solid rgba(255,255,255,.42);border-radius:22px;background:color-mix(in srgb,var(--thpt-panel) 84%,transparent);box-shadow:inset 0 1px rgba(255,255,255,.24),0 14px 44px rgba(11,30,38,.10);-webkit-backdrop-filter:blur(20px) saturate(135%);backdrop-filter:blur(20px) saturate(135%)}
.thpt-topbar__back,.thpt-topbar>button{display:grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid var(--thpt-line);border-radius:13px;background:rgba(255,255,255,.08);cursor:pointer;text-decoration:none}
.thpt-topbar svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.thpt-topbar__brand{display:grid;width:46px;height:46px;place-items:center;border-radius:15px;background:var(--thpt-coral);color:#fff9ed;text-decoration:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.34);font:700 14px/1 var(--tl-font-jp);letter-spacing:.03em}
.thpt-topbar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:650 clamp(19px,2.3vw,23px)/1.2 var(--tl-font-shodo);letter-spacing:-.025em}
.thpt-canvas{position:relative;isolation:isolate;min-height:clamp(560px,calc(100dvh - 120px),720px);overflow:hidden;border:1px solid rgba(255,255,255,.43);border-radius:30px;background:var(--thpt-surface);box-shadow:var(--thpt-shadow);-webkit-backdrop-filter:blur(23px) saturate(132%);backdrop-filter:blur(23px) saturate(132%)}
.thpt-canvas::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.15),transparent 35%),radial-gradient(circle at 72% 20%,var(--thpt-glow),transparent 34%)}
.thpt-topbar :focus-visible,.thpt-canvas :focus-visible,.thpt-settings :focus-visible,.thpt-confirm :focus-visible{outline:3px solid var(--thpt-teal);outline-offset:3px}

/* Hub — one visual fact, two real actions. */
.thpt-home{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);grid-template-rows:minmax(300px,1fr) auto auto;align-items:stretch;padding:clamp(26px,4vw,48px) clamp(24px,6vw,74px) 32px}
.thpt-home__word{position:relative;display:flex;min-height:300px;align-items:center;justify-content:center;border-right:1px solid var(--thpt-line)}
.thpt-home__word::after{content:"";position:absolute;width:190px;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--thpt-coral) 36%,transparent);border-radius:50%;box-shadow:0 0 90px color-mix(in srgb,var(--thpt-coral) 11%,transparent),inset 0 0 52px color-mix(in srgb,var(--thpt-gold) 8%,transparent)}
.thpt-home__word b{position:relative;z-index:1;color:var(--thpt-coral);font:500 clamp(82px,10vw,132px)/.9 var(--tl-font-shodo);letter-spacing:-.10em;writing-mode:vertical-rl;text-shadow:0 12px 44px color-mix(in srgb,var(--thpt-coral) 18%,transparent)}
.thpt-home__score{display:grid;grid-template-columns:1fr 1px 1fr;gap:clamp(22px,4vw,50px);align-items:center;padding:20px 0 20px clamp(28px,5vw,64px)}
.thpt-home__score>div{display:grid;align-content:center;justify-items:start}
.thpt-home__score b{font:520 clamp(88px,13vw,158px)/.78 var(--tl-font-shodo);letter-spacing:-.09em}
.thpt-home__score span{margin-top:20px;color:var(--thpt-ink-soft);font:700 12px/1 var(--tl-font-mono);letter-spacing:.24em;text-transform:uppercase}
.thpt-home__score>i{width:1px;height:52%;background:var(--thpt-line)}
.thpt-home__start{grid-column:1/-1;display:inline-flex;width:min(100%,340px);min-height:56px;align-items:center;justify-content:center;justify-self:center;margin:4px 0 20px;border-radius:14px;background:var(--thpt-coral);color:#fffaf0;text-decoration:none;font-size:17px;font-weight:800;box-shadow:0 15px 38px color-mix(in srgb,var(--thpt-coral) 24%,transparent)}
.thpt-home__ranges{grid-column:1/-1;display:grid;grid-template-columns:5fr 7fr 10fr 10fr 8fr;gap:5px;align-items:end;margin:12px 0 0}
.thpt-home__ranges span{display:grid;min-width:0;height:8px;padding-top:14px;border-top:8px solid var(--thpt-gold);color:var(--thpt-ink-soft);font:650 11px/1 var(--tl-font-mono);text-align:center}
.thpt-home__ranges span:nth-child(2){border-color:var(--thpt-coral)}.thpt-home__ranges span:nth-child(3){border-color:var(--thpt-teal)}.thpt-home__ranges span:nth-child(4){border-color:var(--thpt-indigo)}.thpt-home__ranges span:nth-child(5){border-color:color-mix(in srgb,var(--thpt-coral) 60%,var(--thpt-indigo))}

/* Progressive zero-to-exam journey; one stage is open at a time. */
.thpt-roadmap{position:relative;margin-top:20px;padding:clamp(28px,5vw,54px) clamp(20px,5vw,62px);border:1px solid rgba(255,255,255,.43);border-radius:30px;background:var(--thpt-surface);box-shadow:var(--thpt-shadow);-webkit-backdrop-filter:blur(23px) saturate(132%);backdrop-filter:blur(23px) saturate(132%)}
.thpt-roadmap__head{display:flex;align-items:center;gap:18px;margin-bottom:28px}.thpt-roadmap__head>span{color:var(--thpt-coral);font:500 clamp(54px,7vw,82px)/1 var(--tl-font-shodo)}.thpt-roadmap__head h2{margin:0;font:620 clamp(32px,4.4vw,52px)/1 var(--tl-font-shodo);letter-spacing:-.04em}
.thpt-roadmap__tabs{position:relative;display:grid;grid-template-columns:repeat(7,minmax(84px,1fr));gap:5px;margin-bottom:34px;overflow-x:auto;scrollbar-width:thin}.thpt-roadmap__tabs::before{content:"";position:absolute;left:7%;right:7%;top:28px;height:1px;background:linear-gradient(90deg,var(--thpt-gold),var(--thpt-coral),var(--thpt-teal),var(--thpt-indigo));opacity:.55}.thpt-roadmap__tabs button{--roadmap-accent:var(--thpt-gold);position:relative;z-index:1;display:flex;min-width:84px;min-height:82px;flex-direction:column;align-items:center;gap:7px;padding:0 4px;border:0;background:transparent;color:var(--thpt-ink-soft);cursor:pointer}.thpt-roadmap__tabs button:nth-child(2),.thpt-roadmap__tabs button:nth-child(5){--roadmap-accent:var(--thpt-coral)}.thpt-roadmap__tabs button:nth-child(3),.thpt-roadmap__tabs button:nth-child(6){--roadmap-accent:var(--thpt-teal)}.thpt-roadmap__tabs button:nth-child(4),.thpt-roadmap__tabs button:nth-child(7){--roadmap-accent:var(--thpt-indigo)}.thpt-roadmap__tabs button>span{display:grid;width:56px;height:56px;place-items:center;border:1px solid color-mix(in srgb,var(--roadmap-accent) 58%,transparent);border-radius:50%;background:var(--thpt-panel);color:var(--roadmap-accent);font:600 23px/1 var(--tl-font-shodo)}.thpt-roadmap__tabs button>strong{font-size:11px;white-space:nowrap}.thpt-roadmap__tabs button[aria-selected="true"]{color:var(--thpt-ink)}.thpt-roadmap__tabs button[aria-selected="true"]>span{background:color-mix(in srgb,var(--roadmap-accent) 16%,var(--thpt-panel));box-shadow:0 0 0 5px color-mix(in srgb,var(--roadmap-accent) 10%,transparent)}
.thpt-roadmap [data-thpt-roadmap-panel]{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:clamp(26px,5vw,60px);align-items:start}.thpt-roadmap [data-thpt-roadmap-panel][hidden]{display:none}.thpt-roadmap [data-thpt-roadmap-panel]>header{display:flex;align-items:center;gap:15px}.thpt-roadmap [data-thpt-roadmap-panel]>header span{color:var(--thpt-coral);font:500 58px/1 var(--tl-font-shodo)}.thpt-roadmap [data-thpt-roadmap-panel]>header h3{margin:0;font:620 clamp(25px,3vw,35px)/1.1 var(--tl-font-shodo)}.thpt-roadmap [data-thpt-roadmap-panel]>div{border-left:1px solid var(--thpt-line);padding-left:clamp(18px,3vw,34px)}.thpt-roadmap [data-thpt-roadmap-panel] a{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center;min-height:66px;border-bottom:1px solid var(--thpt-line);color:var(--thpt-ink);text-decoration:none}.thpt-roadmap [data-thpt-roadmap-panel] a:first-child{border-top:1px solid var(--thpt-line)}.thpt-roadmap [data-thpt-roadmap-panel] a>span{color:var(--thpt-coral);font:600 22px/1 var(--tl-font-shodo)}.thpt-roadmap [data-thpt-roadmap-panel] a>strong{font-size:16px}
/* Structure — source-backed, no seven invented categories. */
.thpt-structure{padding:clamp(30px,5vw,62px) clamp(24px,6vw,74px) 88px}
.thpt-title-lock{display:flex;align-items:center;gap:18px;margin-bottom:clamp(30px,5vw,58px)}
.thpt-title-lock>span{color:var(--thpt-coral);font:500 clamp(56px,7vw,84px)/1 var(--tl-font-shodo)}
.thpt-title-lock h1{margin:0;font:620 clamp(34px,4.8vw,58px)/1.02 var(--tl-font-shodo);letter-spacing:-.045em}
.thpt-structure__body{display:grid;grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr);gap:clamp(30px,5vw,70px);align-items:stretch}
.thpt-structure__metric{display:flex;min-height:250px;flex-direction:column;justify-content:center;padding-right:30px;border-right:1px solid var(--thpt-line)}
.thpt-structure__metric b{font:520 clamp(118px,15vw,182px)/.72 var(--tl-font-shodo);letter-spacing:-.12em}
.thpt-structure__metric span{margin-top:26px;color:var(--thpt-coral);font:650 clamp(26px,3.5vw,42px)/1 var(--tl-font-shodo)}
.thpt-structure__metric i{margin-top:20px;color:var(--thpt-ink-soft);font:700 12px/1 var(--tl-font-mono);font-style:normal;letter-spacing:.18em}
.thpt-group-map{display:grid;grid-template-columns:repeat(40,1fr);gap:5px;align-items:end;margin:0;padding:0;list-style:none}
.thpt-group-map li{grid-column:span var(--range);display:flex;min-width:0;min-height:250px;flex-direction:column;justify-content:flex-end;gap:16px;padding:18px 10px;border-top:6px solid var(--thpt-gold);border-bottom:1px solid var(--thpt-line)}
.thpt-group-map li:nth-child(2){border-top-color:var(--thpt-coral)}.thpt-group-map li:nth-child(3){border-top-color:var(--thpt-teal)}.thpt-group-map li:nth-child(4){border-top-color:var(--thpt-indigo)}.thpt-group-map li:nth-child(5){border-top-color:color-mix(in srgb,var(--thpt-coral) 60%,var(--thpt-indigo))}
.thpt-group-map span{color:var(--thpt-ink-soft);font:650 11px/1 var(--tl-font-mono);letter-spacing:.12em}.thpt-group-map strong{font:650 clamp(12px,1.6vw,18px)/1 var(--tl-font-mono);white-space:nowrap}
.thpt-choice-key{display:flex;align-items:center;gap:10px;margin-top:40px;padding-block:18px;border-block:1px solid var(--thpt-line)}
.thpt-choice-key span{display:grid;width:54px;height:54px;place-items:center;border:1px solid var(--thpt-line);border-radius:50%;font:650 20px/1 var(--tl-font-mono)}
.thpt-choice-key i{margin-left:auto;color:var(--thpt-ink-soft);font:700 14px/1 var(--tl-font-mono);font-style:normal}
.thpt-inline-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:24px}
.thpt-inline-actions a,.thpt-inline-actions button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:12px 19px;border:1px solid var(--thpt-line);border-radius:13px;background:transparent;color:var(--thpt-ink);cursor:pointer;text-decoration:none;font-weight:700}
.thpt-inline-actions a:last-child,.thpt-inline-actions .is-primary,.thpt-inline-actions button:last-child{border-color:transparent;background:var(--thpt-coral);color:#fffaf0}

/* Lobby — one official paper, no mixed synthetic exam cards. */
.thpt-lobby{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.62fr);grid-template-rows:1fr auto;align-items:center;padding:clamp(34px,6vw,78px) clamp(24px,7vw,86px) 90px}
.thpt-lobby__seal{position:absolute;right:clamp(24px,6vw,80px);top:clamp(26px,5vw,62px);display:grid;width:clamp(140px,18vw,210px);aspect-ratio:1;place-items:center;border:1px solid color-mix(in srgb,var(--thpt-coral) 42%,transparent);border-radius:50%;color:var(--thpt-coral);transform:rotate(-6deg);box-shadow:0 0 90px color-mix(in srgb,var(--thpt-coral) 12%,transparent)}
.thpt-lobby__seal::before{content:"";position:absolute;inset:11px;border:1px solid color-mix(in srgb,var(--thpt-coral) 30%,transparent);border-radius:50%}
.thpt-lobby__seal small{position:absolute;top:23%;font:700 11px/1 var(--tl-font-mono);letter-spacing:.32em}.thpt-lobby__seal b{font:560 clamp(38px,5vw,64px)/1 var(--tl-font-shodo)}
.thpt-lobby__ticket{position:relative;z-index:2;align-self:center;max-width:680px}
.thpt-lobby__ticket>span{color:var(--thpt-gold);font:700 12px/1 var(--tl-font-mono);letter-spacing:.3em}
.thpt-lobby__ticket h1{margin:18px 0 34px;font:580 clamp(46px,7.7vw,90px)/.92 var(--tl-font-shodo);letter-spacing:-.06em;text-wrap:balance}
.thpt-lobby__ticket>div{display:flex;align-items:center;gap:18px}.thpt-lobby__ticket>div b{font:650 clamp(18px,2.6vw,28px)/1 var(--tl-font-shodo)}.thpt-lobby__ticket>div i{width:1px;height:36px;background:var(--thpt-line)}
.thpt-lobby__actions{grid-column:1/-1;display:flex;gap:12px;align-items:center;padding-top:28px;border-top:1px solid var(--thpt-line)}
.thpt-lobby__actions a{display:inline-flex;min-width:150px;min-height:52px;align-items:center;justify-content:center;padding:12px 20px;border:1px solid var(--thpt-line);border-radius:13px;text-decoration:none;font-weight:750}.thpt-lobby__actions a.is-primary{border-color:transparent;background:var(--thpt-coral);color:#fffaf0}
.thpt-exam-library{align-items:start}.thpt-exam-library .thpt-lobby__ticket{align-self:start}.thpt-exam-library .thpt-lobby__ticket h1{margin-bottom:12px}.thpt-exam-library__list{grid-column:1/-1;margin-top:24px;border-top:1px solid var(--thpt-line)}.thpt-exam-library__list h2{margin:24px 0 8px;color:var(--thpt-gold);font:750 11px/1.4 var(--tl-font-mono);letter-spacing:.14em;text-transform:uppercase}.thpt-exam-library__list a{display:grid;grid-template-columns:82px minmax(150px,.8fr) minmax(190px,1fr) auto;gap:16px;align-items:center;min-height:72px;border-bottom:1px solid var(--thpt-line);color:var(--thpt-ink);text-decoration:none}.thpt-exam-library__list a>span{color:var(--thpt-coral);font:620 29px/1 var(--tl-font-shodo)}.thpt-exam-library__list a>strong{font:650 18px/1.25 var(--tl-font-shodo)}.thpt-exam-library__list a>small{color:var(--thpt-ink-soft);font:650 12px/1.4 var(--tl-font-mono)}.thpt-exam-library__list a>b{display:grid;min-width:82px;min-height:44px;place-items:center;border-radius:12px;background:var(--thpt-coral);color:#fffaf0;font-size:13px}

/* Exam shell. */
.thpt-exam{min-height:680px;padding:clamp(24px,4vw,46px) clamp(18px,4vw,48px) 82px}
.thpt-exam-intro{display:grid;grid-template-columns:minmax(180px,.54fr) minmax(0,1fr);gap:clamp(26px,6vw,72px);min-height:520px;align-items:center}
.thpt-exam-intro__mark{display:grid;min-height:330px;place-items:center;border-right:1px solid var(--thpt-line);color:var(--thpt-indigo);font:500 clamp(130px,19vw,230px)/1 var(--tl-font-shodo);text-shadow:0 12px 60px color-mix(in srgb,var(--thpt-indigo) 18%,transparent)}
.thpt-exam-intro>div:last-child>span{color:var(--thpt-gold);font:700 12px/1 var(--tl-font-mono);letter-spacing:.26em}.thpt-exam-intro h1{margin:14px 0 30px;font:600 clamp(43px,7vw,76px)/.95 var(--tl-font-shodo);letter-spacing:-.055em}.thpt-exam-intro__meta{display:flex;align-items:center;gap:22px;margin-bottom:34px}.thpt-exam-intro__meta b{font:560 clamp(44px,6vw,68px)/1 var(--tl-font-shodo)}.thpt-exam-intro__meta i{width:1px;height:48px;background:var(--thpt-line)}
.thpt-exam-intro p{margin:0 0 30px;color:var(--thpt-ink-soft);font:750 16px/1.4 var(--tl-font-mono)}
.thpt-primary,.thpt-submit{min-height:52px;padding:12px 22px;border:0;border-radius:13px;background:var(--thpt-coral);color:#fffaf0;cursor:pointer;font-weight:780}
.thpt-exam-toolbar{display:grid;grid-template-columns:auto auto auto 1fr;gap:12px;align-items:center;min-height:66px;padding:10px 14px;border-bottom:1px solid var(--thpt-line)}
.thpt-exam-toolbar>strong{font:700 clamp(23px,3vw,31px)/1 var(--tl-font-mono);font-variant-numeric:tabular-nums}.thpt-exam-toolbar>span{color:var(--thpt-ink-soft);font:700 13px/1 var(--tl-font-mono)}
.thpt-exam-view-tabs{display:none;justify-self:end;gap:4px;padding:4px;border:1px solid var(--thpt-line);border-radius:12px}.thpt-exam-view-tabs button{min-height:44px;padding:8px 14px;border:0;border-radius:8px;background:transparent;cursor:pointer;font-weight:700}.thpt-exam-view-tabs button[aria-selected="true"]{background:color-mix(in srgb,var(--thpt-coral) 12%,transparent);color:var(--thpt-coral)}
.thpt-exam-workspace{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(320px,.52fr);min-height:580px}
.thpt-exam-document{position:relative;min-height:580px;border-right:1px solid var(--thpt-line);background:rgba(255,255,255,.72)}
.thpt-exam-document iframe{display:block;width:100%;height:100%;min-height:580px;border:0;background:#fff}.thpt-exam-document>a{position:absolute;right:12px;bottom:12px;display:inline-flex;min-height:44px;align-items:center;padding:9px 13px;border-radius:11px;background:rgba(16,31,42,.84);color:#fff;text-decoration:none;font-size:13px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.thpt-answer-sheet{max-height:580px;overflow-y:auto;padding:18px}.thpt-answer-sheet>header{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:center}.thpt-answer-sheet>header button{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--thpt-line);border-radius:12px;background:transparent;cursor:pointer;font-size:24px}.thpt-answer-sheet>header strong{text-align:center;font:700 18px/1 var(--tl-font-mono)}
.thpt-answer-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.thpt-answer-options button{display:grid;min-width:0;min-height:54px;place-items:center;border:1px solid var(--thpt-line);border-radius:50%;background:transparent;cursor:pointer;font:700 18px/1 var(--tl-font-mono)}.thpt-answer-options button[aria-pressed="true"]{border-color:var(--thpt-coral);background:var(--thpt-coral);color:#fff}
.thpt-question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:18px 0 24px}.thpt-question-grid button{min-width:0;min-height:44px;padding:4px;border:1px solid var(--thpt-line);border-radius:8px;background:transparent;cursor:pointer;font:650 11px/1 var(--tl-font-mono)}.thpt-question-grid button.is-current{outline:2px solid var(--thpt-teal);outline-offset:1px}.thpt-question-grid button.is-answered{border-color:color-mix(in srgb,var(--thpt-coral) 56%,var(--thpt-line));background:color-mix(in srgb,var(--thpt-coral) 12%,transparent);color:var(--thpt-coral)}
.thpt-question-grid button.is-flagged{box-shadow:inset 0 -3px var(--thpt-gold)}
.thpt-submit{width:100%}
.thpt-exam-toolbar>button{justify-self:end;min-height:44px;padding:9px 15px;border:1px solid var(--thpt-line);border-radius:12px;background:transparent;cursor:pointer;font-weight:750}
.thpt-exam-toolbar>button[aria-pressed="true"]{border-color:var(--thpt-gold);background:color-mix(in srgb,var(--thpt-gold) 12%,transparent);color:var(--thpt-gold)}
.thpt-real-workspace{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);min-height:620px}
.thpt-real-workspace.is-question-only{grid-template-columns:minmax(0,780px);justify-content:center}.thpt-real-workspace.is-question-only .thpt-real-question{width:100%}
.thpt-real-reading{max-height:680px;overflow-y:auto;padding:24px clamp(20px,3vw,38px);border-right:1px solid var(--thpt-line)}
.thpt-real-reading>header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.thpt-real-reading>header span{color:var(--thpt-coral);font:600 31px/1 var(--tl-font-shodo)}.thpt-real-reading>header button{min-height:44px;margin-left:auto;padding:9px 13px;border:1px solid var(--thpt-line);border-radius:12px;background:transparent;cursor:pointer;font-size:13px;font-weight:700}
.thpt-stimulus[hidden]{display:none}.thpt-stimulus p{margin:0 0 16px;color:var(--thpt-ink);font:500 clamp(17px,1.7vw,20px)/1.9 var(--tl-font-jp);text-align:justify}.thpt-stimulus mark{padding:1px 4px;border-radius:5px;background:color-mix(in srgb,var(--thpt-coral) 18%,transparent);color:var(--thpt-coral);font-weight:750}.thpt-stimulus>small{display:block;margin-top:24px;color:var(--thpt-ink-soft);font:500 11px/1.6 var(--tl-font-jp)}
.thpt-stimulus__intro{font-weight:650!important}.thpt-stimulus__images{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(220px,.9fr);gap:14px;align-items:start}.thpt-stimulus__images figure{margin:0;overflow:auto;border:1px solid var(--thpt-line);border-radius:14px;background:#fff}.thpt-stimulus__zoom{display:block;width:100%;padding:0;border:0;background:#fff;cursor:zoom-in}.thpt-stimulus__images img{display:block;width:100%;height:auto}.thpt-stimulus__transcript{margin-top:14px;border-top:1px solid var(--thpt-line)}.thpt-stimulus__transcript summary{min-height:44px;padding:12px 0;cursor:pointer;color:var(--thpt-teal);font-weight:750}.thpt-stimulus__transcript p{font-size:15px;text-align:left}
.thpt-real-question{display:flex;min-width:0;flex-direction:column;padding:28px clamp(20px,3.2vw,42px)}.thpt-real-question>span{color:var(--thpt-gold);font:750 12px/1 var(--tl-font-mono);letter-spacing:.16em}.thpt-real-question>p{min-height:22px;margin:18px 0 8px;color:var(--thpt-ink-soft);font:650 14px/1.55 var(--tl-font-jp)}.thpt-real-question h2{margin:0 0 24px;font:650 clamp(25px,3vw,38px)/1.35 var(--tl-font-jp);text-wrap:balance}
.thpt-real-options{display:grid;gap:9px}.thpt-real-choice{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:center;min-height:58px;padding:7px 13px 7px 7px;border:1px solid var(--thpt-line);border-radius:14px;background:transparent;color:var(--thpt-ink);cursor:pointer;text-align:left}.thpt-real-choice>span{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--thpt-line);border-radius:50%;font:750 14px/1 var(--tl-font-mono)}.thpt-real-choice>strong{font:600 clamp(16px,1.7vw,19px)/1.5 var(--tl-font-jp)}.thpt-real-choice[aria-pressed="true"]{border-color:var(--thpt-coral);background:color-mix(in srgb,var(--thpt-coral) 10%,transparent)}.thpt-real-choice[aria-pressed="true"]>span{border-color:var(--thpt-coral);background:var(--thpt-coral);color:#fff}
.thpt-real-choice.is-correct{border-color:var(--tl-success);background:color-mix(in srgb,var(--tl-success) 10%,transparent)}.thpt-real-choice.is-correct>span{border-color:var(--tl-success);background:var(--tl-success);color:#fff}.thpt-real-choice.is-wrong{border-color:var(--thpt-coral);background:color-mix(in srgb,var(--thpt-coral) 10%,transparent)}.thpt-real-choice.is-wrong>span{border-color:var(--thpt-coral);background:var(--thpt-coral);color:#fff}.thpt-real-choice:disabled{cursor:default;opacity:1}
.thpt-real-question>footer{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding-top:24px}.thpt-real-question>footer button{min-height:50px;border:1px solid var(--thpt-line);border-radius:13px;background:transparent;cursor:pointer;font-weight:750}.thpt-real-question>footer button:last-child{border-color:transparent;background:var(--thpt-coral);color:#fffaf0}.thpt-real-question>footer button:disabled{opacity:.38;cursor:not-allowed}
.thpt-question-map{width:min(470px,calc(100vw - 24px));padding:0;border:1px solid rgba(255,255,255,.3);border-radius:22px;background:var(--thpt-surface-strong);color:var(--thpt-ink);box-shadow:var(--thpt-shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.thpt-question-map::backdrop{background:rgba(4,13,24,.48);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.thpt-question-map>div{padding:18px}.thpt-question-map header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.thpt-question-map header strong{font:650 22px/1.2 var(--tl-font-shodo)}.thpt-question-map header button{display:grid;width:44px;height:44px;margin-left:auto;place-items:center;border:1px solid var(--thpt-line);border-radius:12px;background:transparent;cursor:pointer;font-size:24px}.thpt-question-map .thpt-question-grid{grid-template-columns:repeat(8,1fr);margin:0 0 18px}.thpt-question-map .thpt-question-grid button{min-height:44px}
.thpt-image-zoom{width:min(1120px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid rgba(255,255,255,.3);border-radius:22px;background:var(--thpt-surface-strong);color:var(--thpt-ink);box-shadow:var(--thpt-shadow)}.thpt-image-zoom::backdrop{background:rgba(4,13,24,.68);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.thpt-image-zoom>header{display:flex;align-items:center;min-height:64px;padding:10px 14px;border-bottom:1px solid var(--thpt-line)}.thpt-image-zoom>header strong{font:650 20px/1.2 var(--tl-font-shodo)}.thpt-image-zoom>header button{display:grid;width:44px;height:44px;margin-left:auto;place-items:center;border:1px solid var(--thpt-line);border-radius:12px;background:transparent;cursor:pointer;font-size:24px}.thpt-image-zoom__viewport{max-height:calc(100dvh - 100px);overflow:auto;padding:12px;background:#fff}.thpt-image-zoom__viewport img{display:block;max-width:100%;height:auto;margin:auto}
.thpt-exam-result{display:grid;min-height:550px;align-content:center;justify-items:center;text-align:center}.thpt-exam-result>span{color:var(--thpt-gold);font:700 12px/1 var(--tl-font-mono);letter-spacing:.24em}.thpt-exam-result>div:nth-of-type(1){display:flex;align-items:baseline;margin:22px 0 10px}.thpt-exam-result>div:nth-of-type(1) b{font:540 clamp(92px,16vw,170px)/.8 var(--tl-font-shodo);letter-spacing:-.10em}.thpt-exam-result>div:nth-of-type(1) i{color:var(--thpt-ink-soft);font:650 clamp(23px,3vw,34px)/1 var(--tl-font-mono);font-style:normal}.thpt-exam-result>strong{font:700 18px/1.2 var(--tl-font-mono)}.thpt-exam-result>p{max-width:680px;margin:18px 0 0;color:var(--thpt-ink-soft);font-size:15px;line-height:1.55}

.thpt-practice{padding:clamp(24px,4vw,52px)}.thpt-practice-intro{display:grid;grid-template-columns:minmax(150px,.42fr) minmax(240px,.72fr) minmax(320px,1fr);gap:clamp(22px,4vw,52px);align-items:center;min-height:520px}.thpt-practice-intro>.thpt-exam-intro__mark{min-height:300px}.thpt-practice-intro>div>span{color:var(--thpt-gold);font:700 11px/1 var(--tl-font-mono);letter-spacing:.18em}.thpt-practice-intro h1{margin:14px 0 22px;font:600 clamp(42px,6vw,68px)/.95 var(--tl-font-shodo);letter-spacing:-.045em}.thpt-practice-intro p{margin:0;color:var(--thpt-ink-soft);font-size:16px;line-height:1.5}.thpt-practice-groups{display:grid;border-block:1px solid var(--thpt-line)}.thpt-practice-groups a{display:grid;min-height:58px;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--thpt-line);color:var(--thpt-ink)}.thpt-practice-groups a:last-child{border-bottom:0}.thpt-practice-groups a>span{color:var(--thpt-coral);font:700 13px/1 var(--tl-font-mono)}.thpt-practice-groups a>b{font-size:15px}.thpt-practice-groups a>small{color:var(--thpt-ink-soft);font-size:11px}.thpt-practice-room{overflow:hidden;border:1px solid var(--thpt-line);border-radius:18px}.thpt-practice-room .thpt-exam-toolbar>a{justify-self:end;min-height:44px;padding:11px;color:var(--thpt-ink);font-size:13px;font-weight:700}.thpt-practice-feedback{min-height:52px;margin:18px 0 0;padding:12px 14px;border-left:3px solid var(--thpt-line);color:var(--thpt-ink-soft);font-size:15px;line-height:1.55}.thpt-practice-feedback.is-correct{border-color:var(--tl-success);color:var(--tl-success)}.thpt-practice-feedback.is-wrong{border-color:var(--thpt-coral);color:var(--thpt-coral)}.thpt-practice-empty{display:grid;min-height:520px;align-content:center;justify-items:center;text-align:center}.thpt-practice-empty>span{color:var(--thpt-coral);font:500 110px/1 var(--tl-font-shodo)}.thpt-practice-empty h1{margin:18px 0 10px;font:600 clamp(38px,6vw,64px)/1 var(--tl-font-shodo)}.thpt-practice-empty p{max-width:520px;margin:0 0 24px;color:var(--thpt-ink-soft);font-size:16px}.thpt-practice-empty .thpt-primary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.thpt-result-grid{display:grid!important;grid-template-columns:repeat(10,44px);gap:6px;margin:32px 0!important}.thpt-result-grid button{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--thpt-line);border-radius:50%;background:transparent;color:var(--thpt-ink);font:650 10px/1 var(--tl-font-mono)}.thpt-result-grid button.is-correct{border-color:var(--tl-success);background:color-mix(in srgb,var(--tl-success) 14%,transparent);color:var(--tl-success)}.thpt-result-grid button.is-wrong{border-color:var(--thpt-coral);background:color-mix(in srgb,var(--thpt-coral) 14%,transparent);color:var(--thpt-coral)}
.thpt-result-grid button.is-answered{border-color:var(--thpt-teal);background:color-mix(in srgb,var(--thpt-teal) 12%,transparent);color:var(--thpt-teal)}.thpt-result-grid button.is-unanswered{opacity:.5}

/* Dialogs. */
.thpt-settings,.thpt-confirm{width:min(420px,calc(100vw - 24px));padding:0;border:1px solid rgba(255,255,255,.30);border-radius:22px;background:var(--thpt-surface-strong);color:var(--thpt-ink);box-shadow:var(--thpt-shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}
.thpt-settings::backdrop,.thpt-confirm::backdrop{background:rgba(4,13,24,.48);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.thpt-settings form,.thpt-confirm form{margin:0}.thpt-settings header{display:grid;grid-template-columns:44px 1fr 44px;gap:12px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--thpt-line)}.thpt-settings header>span{display:grid;width:44px;height:44px;place-items:center;border-radius:13px;background:var(--thpt-coral);color:#fff9ed;font:700 13px/1 var(--tl-font-jp)}.thpt-settings header strong{font:650 20px/1.2 var(--tl-font-shodo)}.thpt-settings header button{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--thpt-line);border-radius:12px;background:transparent;cursor:pointer;font-size:24px}.thpt-settings nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:18px 18px 0}.thpt-settings nav a{display:flex;min-width:0;min-height:70px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--thpt-line);border-radius:13px;text-decoration:none;font-size:12px;font-weight:700}.thpt-settings nav span{color:var(--thpt-coral);font:600 22px/1 var(--tl-font-shodo)}.thpt-settings section{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 18px 18px}.thpt-settings section button{min-height:50px;border:1px solid var(--thpt-line);border-radius:13px;background:transparent;cursor:pointer;font-weight:700}.thpt-settings section button[aria-pressed="true"]{border-color:var(--thpt-coral);background:color-mix(in srgb,var(--thpt-coral) 10%,transparent);color:var(--thpt-coral)}.thpt-settings form>a{display:flex;min-height:52px;align-items:center;padding:12px 18px;border-top:1px solid var(--thpt-line);color:var(--thpt-teal);text-decoration:none;font-weight:700}
.thpt-confirm form{padding:24px}.thpt-confirm h2{margin:0;font:650 28px/1.1 var(--tl-font-shodo)}.thpt-confirm p{min-height:24px;margin:12px 0 22px;color:var(--thpt-ink-soft)}.thpt-confirm form>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.thpt-confirm button{min-height:50px;border:1px solid var(--thpt-line);border-radius:13px;background:transparent;cursor:pointer;font-weight:700}.thpt-confirm button.is-primary{border-color:transparent;background:var(--thpt-coral);color:#fffaf0}

@media(hover:hover){.thpt-topbar__back:hover,.thpt-topbar>button:hover{background:color-mix(in srgb,var(--thpt-coral) 9%,transparent);color:var(--thpt-coral)}.thpt-home__start:hover{transform:translateY(-2px);box-shadow:0 19px 44px color-mix(in srgb,var(--thpt-coral) 30%,transparent)}.thpt-inline-actions a:hover,.thpt-lobby__actions a:hover{background:color-mix(in srgb,var(--thpt-coral) 8%,transparent)}.thpt-real-choice:hover,.thpt-question-grid button:hover{border-color:var(--thpt-teal)}}

@media(max-width:820px){
  body{background-attachment:scroll}
  .thpt-home{grid-template-columns:minmax(160px,.66fr) minmax(0,1.34fr);padding-inline:34px}.thpt-home__word{min-height:300px}.thpt-home__word::after{width:170px}.thpt-home__word b{font-size:88px}.thpt-home__score{padding-left:34px}.thpt-home__score b{font-size:92px}
  .thpt-structure__body{grid-template-columns:190px minmax(0,1fr);gap:32px}.thpt-structure__metric b{font-size:120px}.thpt-group-map{gap:3px}.thpt-group-map li{padding-inline:5px}.thpt-group-map strong{writing-mode:vertical-rl;justify-self:center;white-space:normal}
  .thpt-real-workspace{grid-template-columns:minmax(0,1fr)}.thpt-real-reading{max-height:none;border-right:0;border-bottom:1px solid var(--thpt-line)}.thpt-real-question{min-height:560px}.thpt-stimulus__images{grid-template-columns:minmax(0,1.5fr) minmax(190px,.8fr)}
  .thpt-roadmap__tabs{grid-template-columns:repeat(7,94px)}.thpt-roadmap [data-thpt-roadmap-panel]{grid-template-columns:1fr;gap:20px}.thpt-roadmap [data-thpt-roadmap-panel]>div{border-left:0;padding-left:0}
}

@media(max-width:620px){
  .thpt-shell{padding:8px 8px 18px}.thpt-topbar{grid-template-columns:44px 44px minmax(0,1fr) 44px;min-height:60px;margin-bottom:8px;padding:7px 8px;border-radius:18px}.thpt-topbar__brand{width:44px;height:44px;border-radius:12px}.thpt-topbar>strong{font-size:18px}
  .thpt-canvas{min-height:calc(100dvh - 92px);border-radius:24px}
  .thpt-home{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;align-content:space-between;padding:14px 18px 24px}.thpt-home__word{min-height:178px;align-items:center;border-right:0;border-bottom:1px solid var(--thpt-line);padding:0}.thpt-home__word::after{width:144px}.thpt-home__word b{font-size:70px;writing-mode:horizontal-tb;letter-spacing:-.12em}.thpt-home__score{grid-template-columns:1fr 1px 1fr;gap:20px;padding:18px 10px}.thpt-home__score>div{justify-items:center}.thpt-home__score b{font-size:clamp(62px,20vw,82px)}.thpt-home__score span{margin-top:10px}.thpt-home__start{width:100%;margin:4px 0 12px}.thpt-home__ranges{grid-column:auto;margin:0;gap:3px}.thpt-home__ranges span{overflow:hidden;font-size:9px}
  .thpt-roadmap{margin-top:8px;padding:28px 18px;border-radius:24px}.thpt-roadmap__head{margin-bottom:22px}.thpt-roadmap__head>span{font-size:54px}.thpt-roadmap__head h2{font-size:32px}.thpt-roadmap__tabs{margin-inline:-6px;margin-bottom:26px}.thpt-roadmap [data-thpt-roadmap-panel]>header span{font-size:48px}.thpt-roadmap [data-thpt-roadmap-panel]>header h3{font-size:27px}.thpt-roadmap [data-thpt-roadmap-panel] a{min-height:62px}
  .thpt-structure{padding:28px 18px 120px}.thpt-title-lock{margin-bottom:32px}.thpt-title-lock>span{font-size:52px}.thpt-title-lock h1{font-size:34px}.thpt-structure__body{grid-template-columns:1fr;gap:22px}.thpt-structure__metric{min-height:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:15px;padding:0 0 22px;border-right:0;border-bottom:1px solid var(--thpt-line)}.thpt-structure__metric b{font-size:94px}.thpt-structure__metric span{margin:0 0 9px;font-size:28px}.thpt-structure__metric i{margin:0 0 12px;font-size:10px}.thpt-group-map{min-height:230px}.thpt-group-map li{min-height:230px;padding:12px 2px}.thpt-group-map strong{font-size:11px;writing-mode:vertical-rl}.thpt-choice-key{margin-top:28px}.thpt-choice-key span{width:48px;height:48px}.thpt-inline-actions{justify-content:stretch}.thpt-inline-actions a,.thpt-inline-actions button{flex:1}
  .thpt-lobby{grid-template-columns:1fr;grid-template-rows:auto auto;padding:34px 20px 70px}.thpt-lobby__seal{right:14px;top:24px;width:138px;opacity:.72}.thpt-lobby__ticket{align-self:start;padding-top:52px}.thpt-lobby__ticket h1{max-width:8ch;margin-top:14px;font-size:clamp(52px,15vw,70px)}.thpt-lobby__ticket>div{flex-wrap:wrap;gap:12px}.thpt-lobby__ticket>div b{font-size:19px}.thpt-lobby__ticket>div i{height:26px}.thpt-lobby__actions{grid-column:auto;align-self:end}.thpt-lobby__actions a{flex:1;min-width:0}
  .thpt-exam-library{padding-bottom:38px}.thpt-exam-library__list{margin-top:8px}.thpt-exam-library__list a{grid-template-columns:62px minmax(0,1fr) auto;gap:10px;padding:10px 0}.thpt-exam-library__list a>span{font-size:25px}.thpt-exam-library__list a>strong{font-size:17px}.thpt-exam-library__list a>small{grid-column:2/4;grid-row:2}.thpt-exam-library__list a>b{grid-column:3;grid-row:1;min-width:74px}
  .thpt-exam{padding:18px 12px 50px}.thpt-exam-intro{grid-template-columns:1fr;gap:10px;min-height:calc(100dvh - 155px);align-content:center;text-align:center}.thpt-exam-intro__mark{min-height:132px;border-right:0;border-bottom:1px solid var(--thpt-line);font-size:105px}.thpt-exam-intro h1{margin:12px 0 18px;font-size:52px}.thpt-exam-intro p{margin-bottom:22px}.thpt-exam-toolbar{position:sticky;z-index:5;top:0;grid-template-columns:auto auto auto 1fr;gap:6px;background:var(--thpt-surface-strong)}.thpt-exam-toolbar>button{padding-inline:9px;font-size:11px}.thpt-real-reading{padding:20px 14px}.thpt-stimulus p{font-size:17px;line-height:1.85;text-align:left}.thpt-stimulus__images{grid-template-columns:1fr;gap:10px}.thpt-stimulus__images figure{max-height:none}.thpt-real-question{min-height:560px;padding:24px 14px}.thpt-real-question h2{font-size:27px}.thpt-real-choice{grid-template-columns:44px minmax(0,1fr);min-height:62px}.thpt-question-map .thpt-question-grid{grid-template-columns:repeat(5,1fr)}.thpt-image-zoom__viewport img{width:700px;max-width:none}.thpt-result-grid{grid-template-columns:repeat(5,44px)}.thpt-practice{padding:16px 10px 48px}.thpt-practice-intro{grid-template-columns:1fr;gap:18px;min-height:auto}.thpt-practice-intro>.thpt-exam-intro__mark{min-height:120px;border-right:0;border-bottom:1px solid var(--thpt-line);font-size:92px}.thpt-practice-intro h1{font-size:48px}.thpt-practice-groups a{grid-template-columns:34px minmax(0,1fr) auto}.thpt-practice-room .thpt-exam-toolbar{grid-template-columns:auto auto 1fr}.thpt-practice-room .thpt-real-question{min-height:520px}
}

@media(max-width:370px){.thpt-topbar{grid-template-columns:44px 1fr 44px}.thpt-topbar__brand{display:none}.thpt-choice-key span{width:44px;height:44px}.thpt-result-grid{grid-template-columns:repeat(5,44px);gap:4px}.thpt-question-grid{grid-template-columns:repeat(5,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(prefers-reduced-transparency:reduce){.thpt-topbar,.thpt-canvas,.thpt-settings,.thpt-confirm,.thpt-question-map,.thpt-image-zoom{background:var(--thpt-surface-strong);-webkit-backdrop-filter:none;backdrop-filter:none}}
@media print{body{background:#fff}.thpt-topbar,.thpt-settings{display:none}.thpt-shell{width:100%;padding:0}.thpt-canvas{border:0;border-radius:0;box-shadow:none}.thpt-exam-document{min-height:100vh}.thpt-answer-sheet{break-before:page}}
