*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#dfe8e8;font-family:var(--tl-font-ui);font-size:clamp(16px,.35vw + 11px,21px)}
body{margin:0;min-height:100vh;color:var(--tl-ink);background:
  radial-gradient(88% 44rem at 14% -10%,color-mix(in srgb,var(--tl-subject-japanese) 18%,transparent),transparent 68%),
  radial-gradient(68% 32rem at 92% 4%,color-mix(in srgb,var(--tl-focus) 15%,transparent),transparent 72%),
  linear-gradient(160deg,#e9efeb 0%,#d9e5e4 48%,#d7dadd 100%);line-height:1.65}
html[data-mode="dark"] body{background:
  radial-gradient(88% 44rem at 14% -10%,rgba(232,137,119,.19),transparent 68%),
  radial-gradient(68% 32rem at 92% 4%,rgba(120,201,219,.15),transparent 72%),
  linear-gradient(160deg,#071521 0%,#0b1a2a 48%,#111823 100%)}
@media(min-width:769px){body{padding-right:230px}}
a{color:inherit}
button,input,select{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--tl-focus);outline-offset:3px}
.archive-shell{width:min(1160px,calc(100% - 34px));margin:0 auto;padding:var(--tl-space-4) 0 var(--tl-space-8)}
.archive-top{display:flex;align-items:center;justify-content:space-between;gap:var(--tl-space-4);min-height:60px;margin-bottom:var(--tl-space-5);border-bottom:1px solid var(--tl-hair)}
.archive-brand{display:flex;align-items:center;gap:var(--tl-space-3);min-height:48px;text-decoration:none}.archive-brand img{width:42px;height:42px;border-radius:var(--tl-radius-control)}.archive-brand strong{display:block;font:600 1.2rem/1 var(--tl-font-ui)}.archive-brand small{display:block;margin-top:5px;color:var(--tl-sepia);font:700 var(--tl-text-meta)/1.2 var(--tl-font-mono);letter-spacing:.18em}
.archive-back{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tl-control-min);padding:8px 15px;border:1px solid var(--tl-hair);border-radius:var(--tl-radius-control);background:var(--tl-glass);text-decoration:none;font:700 var(--tl-text-meta)/1 var(--tl-font-mono);letter-spacing:.09em}
.archive-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(270px,.78fr);gap:clamp(26px,5vw,72px);align-items:center;padding:clamp(28px,5vw,64px);overflow:hidden;border:1px solid var(--tl-glass-border);border-radius:var(--tl-radius-surface);background:var(--tl-glass);box-shadow:var(--tl-shadow);backdrop-filter:blur(var(--tl-blur))}
.archive-hero:before{content:"試";position:absolute;right:.3rem;bottom:-.22em;color:color-mix(in srgb,var(--tl-seal) 8%,transparent);font:700 clamp(8rem,22vw,17rem)/.8 var(--tl-font-shodo);pointer-events:none}
.archive-hero-copy{position:relative;z-index:1}.archive-eyebrow{margin:0 0 var(--tl-space-3);color:var(--tl-sepia);font:700 var(--tl-text-meta)/1.4 var(--tl-font-mono);letter-spacing:.16em;text-transform:uppercase}.archive-hero h1{max-width:12ch;margin:0 0 var(--tl-space-4);font:600 var(--tl-text-title)/1.02 var(--tl-font-ui);letter-spacing:-.045em}.archive-hero h1 span{display:block;color:var(--tl-seal);font-family:var(--tl-font-shodo);font-weight:500}.archive-lede{max-width:63ch;margin:0 0 var(--tl-space-5);color:var(--tl-ink-soft);font-size:var(--tl-text-body-large)}
.archive-actions{display:flex;flex-wrap:wrap;gap:var(--tl-space-3)}.archive-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tl-control-primary);padding:10px 18px;border:1px solid var(--tl-hair);border-radius:var(--tl-radius-control);background:var(--tl-glass-strong);text-decoration:none;font-weight:700}.archive-btn.primary{border-color:var(--tl-seal);background:var(--tl-seal);color:#fff}
.archive-visual{position:relative;z-index:1;min-height:330px;margin:0;overflow:hidden;border:1px solid var(--tl-glass-border);border-radius:var(--tl-radius-panel);background:var(--tl-paper-soft)}.archive-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.archive-visual:after{content:"模擬試験 · practice archive";position:absolute;right:var(--tl-space-4);bottom:var(--tl-space-4);left:var(--tl-space-4);padding:var(--tl-space-3) var(--tl-space-4);border:1px solid rgba(255,255,255,.28);border-radius:var(--tl-radius-control);background:rgba(7,21,33,.76);color:#fff;backdrop-filter:blur(12px);font:700 var(--tl-text-meta)/1.3 var(--tl-font-mono);letter-spacing:.08em}
.archive-chapter{padding:var(--tl-space-8) 0 0}.archive-heading{display:grid;grid-template-columns:minmax(150px,.42fr) minmax(0,1.58fr);gap:var(--tl-space-5);align-items:end;margin-bottom:var(--tl-space-5)}.archive-index{color:var(--tl-sepia);font:700 var(--tl-text-meta)/1 var(--tl-font-mono);letter-spacing:.13em}.archive-heading h2{margin:0;font:600 clamp(2rem,4.4vw,3.8rem)/1.03 var(--tl-font-ui);letter-spacing:-.035em}.archive-heading p{max-width:70ch;margin:var(--tl-space-3) 0 0;color:var(--tl-ink-soft)}
.archive-surface{overflow:hidden;border:1px solid var(--tl-glass-border);border-radius:var(--tl-radius-surface);background:var(--tl-glass);box-shadow:var(--tl-shadow);backdrop-filter:blur(var(--tl-blur))}
.archive-groups{overflow:hidden;border:1px solid var(--tl-glass-border);border-radius:var(--tl-radius-surface);background:var(--tl-glass);box-shadow:var(--tl-shadow);backdrop-filter:blur(var(--tl-blur))}.archive-group{border-bottom:1px solid var(--tl-hair)}.archive-group:last-child{border-bottom:0}.archive-group summary{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:var(--tl-space-4);align-items:center;min-height:92px;padding:var(--tl-space-4) var(--tl-space-5);cursor:pointer;list-style:none}.archive-group summary::-webkit-details-marker{display:none}.archive-group summary:hover,.archive-group[open]>summary{background:var(--tl-wash)}.archive-route-mark{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--tl-hair);border-radius:var(--tl-radius-control);color:var(--tl-seal);font:600 1.45rem/1 var(--tl-font-shodo)}.archive-group summary strong{display:block;font-size:1.05rem}.archive-group summary small{display:block;margin-top:3px;color:var(--tl-ink-soft)}.archive-route-arrow{color:var(--tl-sepia);font:700 1.1rem/1 var(--tl-font-mono);transition:transform .2s ease}.archive-group[open] .archive-route-arrow{transform:rotate(45deg)}
.archive-subroutes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0 var(--tl-space-5) var(--tl-space-4) calc(58px + var(--tl-space-5) + var(--tl-space-4));overflow:hidden;border:1px solid var(--tl-hair);border-radius:var(--tl-radius-control);background:var(--tl-hair)}.archive-subroute{display:block;min-height:72px;padding:var(--tl-space-3) var(--tl-space-4);background:var(--tl-paper);text-decoration:none}.archive-subroute:hover{background:var(--tl-wash)}.archive-subroute span,.archive-subroute small{display:block}.archive-subroute span{font-weight:700}.archive-subroute small{margin-top:3px;color:var(--tl-ink-soft);font-size:.78rem}
.archive-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--tl-space-4);min-height:var(--tl-control-primary);padding:var(--tl-space-3) var(--tl-space-4);border:1px solid var(--tl-hair);border-radius:var(--tl-radius-control);background:var(--tl-paper);cursor:pointer;list-style:none;font-weight:700}.archive-disclosure>summary::-webkit-details-marker{display:none}.archive-disclosure>summary span{color:var(--tl-sepia);transition:transform .2s ease}.archive-disclosure[open]>summary span{transform:rotate(45deg)}.archive-disclosure .archive-surface{margin-top:var(--tl-space-3);box-shadow:none}
.archive-rights{display:grid;grid-template-columns:auto 1fr;gap:var(--tl-space-4);align-items:start;margin-bottom:var(--tl-space-5);padding:var(--tl-space-4) var(--tl-space-5);border-left:4px solid var(--tl-seal);border-radius:0 var(--tl-radius-control) var(--tl-radius-control) 0;background:var(--tl-paper)}.archive-rights-mark{color:var(--tl-seal);font:600 1.4rem/1 var(--tl-font-shodo)}.archive-rights p{margin:0;color:var(--tl-ink-soft)}.archive-rights strong{color:var(--tl-ink)}
.archive-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--tl-hair)}.archive-source-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:var(--tl-space-3);align-items:center;min-height:78px;padding:var(--tl-space-4);border-right:1px solid var(--tl-hair);border-bottom:1px solid var(--tl-hair);text-decoration:none}.archive-source-row:nth-child(2n){border-right:0}.archive-source-row:hover{background:var(--tl-wash)}.archive-source-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--tl-radius-control);background:var(--tl-paper-soft);color:var(--tl-seal);font:700 var(--tl-text-meta)/1 var(--tl-font-mono)}.archive-source-copy strong,.archive-source-copy small{display:block}.archive-source-copy small{margin-top:3px;color:var(--tl-ink-soft);font-size:.76rem}.archive-source-arrow{color:var(--tl-sepia);font-weight:700}.archive-load-error{grid-column:1/-1;margin:0;padding:var(--tl-space-5);color:var(--tl-danger)}
.archive-note{margin:var(--tl-space-5) 0 0;color:var(--tl-ink-soft);font-size:.88rem}.archive-note a{color:var(--tl-focus);font-weight:700}
.archive-footer{margin-top:var(--tl-space-8);padding:var(--tl-space-5) 0;border-top:1px solid var(--tl-hair);color:var(--tl-ink-soft);text-align:center;font:600 var(--tl-text-meta)/1.6 var(--tl-font-mono);letter-spacing:.05em}.archive-footer a{display:inline-flex;align-items:center;min-height:var(--tl-control-min);padding-inline:4px}
@media(max-width:920px){.archive-hero{grid-template-columns:1fr}.archive-visual{min-height:280px}.archive-heading{grid-template-columns:1fr}}
@media(max-width:580px){.archive-shell{width:min(100% - 22px,1160px)}.archive-top{align-items:flex-start}.archive-hero{padding:24px 18px;border-radius:var(--tl-radius-panel)}.archive-hero h1{font-size:2.55rem}.archive-visual{min-height:170px}.archive-actions,.archive-btn{width:100%}.archive-heading h2{font-size:2.15rem}.archive-group summary{grid-template-columns:48px minmax(0,1fr) auto;gap:var(--tl-space-3);min-height:82px;padding:var(--tl-space-3)}.archive-route-mark{width:44px;height:44px}.archive-subroutes{grid-template-columns:1fr;margin:0 var(--tl-space-3) var(--tl-space-3)}.archive-source-list{grid-template-columns:1fr}.archive-source-row,.archive-source-row:nth-child(2n){border-right:0}.archive-rights{padding:var(--tl-space-4)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
