/* The shared TalkTag level-first pattern: large A/B/C cards and a shelf below. */
.tt-camp-level-first>header.top>.back{display:none!important}
.camp-browser{margin:28px 0;color:var(--tt-text,#183455);font-size:16px;line-height:1.6}
.camp-browser *{box-sizing:border-box;min-width:0}
.camp-browser [hidden]{display:none!important}
.camp-browser h2{font-size:clamp(22px,3vw,28px)!important;line-height:1.3;margin:5px 0 8px!important;color:var(--tt-heading,var(--tt-text,#082b68))}
.camp-browser h3{font-size:22px;line-height:1.35;margin:7px 0 8px;overflow-wrap:anywhere;color:var(--tt-heading,var(--tt-text,#082b68))}
.camp-browser p{margin:6px 0 12px;color:var(--tt-muted,#687b92);font-size:16px;line-height:1.6}
.camp-browser .camp-kicker{font-size:11px;letter-spacing:.1em;color:var(--tt-accent,#1768e9);font-weight:800}
.camp-resume:not(:empty){margin-bottom:24px}.camp-resume a{display:flex;flex-direction:column;gap:4px;min-height:44px;padding:16px 18px;border:1px solid var(--tt-border);border-left:3px solid var(--tt-accent);border-radius:16px;background:var(--tt-card);color:var(--tt-text);text-decoration:none}.camp-resume small,.camp-resume span{font-size:13px;color:var(--tt-muted)}
.camp-level-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.camp-level-heading-row h2{margin:0!important}
.camp-total-progress{flex:none;color:var(--tt-muted,#64748b);font-size:13px;font-weight:700;white-space:nowrap}
.camp-levels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 6px}
.camp-level-landing{margin:0 0 24px}.camp-change-level{display:inline-flex;align-items:center;min-height:44px;margin:0 0 28px;padding:0 14px;border:1px solid var(--tt-border,#dbe5f1);border-radius:12px;background:var(--tt-card,#fff);color:var(--tt-text,#183455)!important;text-decoration:none;font-size:14px;font-weight:800}.camp-level-landing h2{font-size:clamp(32px,4vw,44px)!important;letter-spacing:-.045em;margin:10px 0 12px!important}.camp-level-landing p{max-width:680px;margin:0!important;font-size:17px!important;line-height:1.65!important}
.camp-levels>a{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-height:106px;padding:18px;border:1px solid var(--camp-line);border-radius:20px;background:var(--camp-paper);color:var(--camp-ink,#17385f)!important;text-decoration:none;box-shadow:0 5px 16px #17385f0b;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.camp-levels>a::after{content:'↗';position:absolute;top:15px;right:17px;font-size:17px;font-weight:700;opacity:.55}
.camp-levels>a:hover{transform:translateY(-2px);box-shadow:0 10px 24px #17385f18;border-color:#90b6df}
.camp-levels>a[data-group=A]{--camp-paper:#fff8ec;--camp-line:#ede2c9}.camp-levels>a[data-group=B]{--camp-paper:#eff8fb;--camp-line:#d1e7ed}.camp-levels>a[data-group=C]{--camp-paper:#f1f8f1;--camp-line:#d4e6d5}
.camp-levels strong{font-size:clamp(23px,2.9vw,28px);line-height:1.2;letter-spacing:-.03em}.camp-levels small{font-size:13px;line-height:1.4;color:var(--tt-muted,#5d6c7d)!important;font-weight:650}
.camp-levels>a[aria-current=page]{outline:2px solid var(--tt-accent,#1768e9);outline-offset:3px}
.camp-level-meter{width:100%;height:4px;overflow:hidden;border-radius:4px;background:#17385f18;margin-top:7px}.camp-level-meter i{height:100%;display:block;background:#176bd5}
.camp-levels>a.is-level-complete{--camp-paper:#edf5ed;--camp-line:#a7cfb1}
.camp-cefr-guide{margin:0 0 30px;padding:28px;border:1px solid var(--tt-border);border-radius:24px;background:var(--tt-card);box-shadow:0 8px 22px #18345508}
.camp-cefr-kicker{margin-bottom:12px;color:var(--tt-muted);font-size:11px;font-weight:900;letter-spacing:.1em}.camp-cefr-guide h2{margin-bottom:16px!important}.camp-cefr-guide>p{margin:0;font-size:16px;line-height:1.7}.camp-cefr-scale{margin-top:22px;overflow:hidden;border:1px solid var(--tt-border);border-radius:18px}.camp-cefr-scale>div{display:grid;grid-template-columns:150px minmax(0,1fr);column-gap:20px;padding:18px 20px;border-bottom:1px solid var(--tt-border)}.camp-cefr-scale>div:last-child{border-bottom:0}.camp-cefr-scale em{font-style:normal;color:var(--tt-muted);font-size:10px;font-weight:900;letter-spacing:.1em}.camp-cefr-scale b{margin-top:4px;color:var(--tt-heading,var(--tt-text));font-size:17px}.camp-cefr-scale span{grid-column:2;grid-row:1/3;align-self:center;color:var(--tt-muted);font-size:16px;line-height:1.6}.camp-cefr-note{margin-top:20px;padding:16px;border-radius:16px;background:#fff5cf;color:var(--tt-text);font-size:15px;line-height:1.7}
.camp-episode-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;scroll-margin-top:200px}.camp-episode-heading p{font-size:14px;font-variant-numeric:tabular-nums;margin:0!important}
.camp-search{margin-bottom:18px}.camp-search label{display:block;font-size:13px;font-weight:700;margin-bottom:7px;color:var(--tt-muted)}.camp-search>div{display:flex;gap:8px;align-items:center}.camp-search input{width:100%;min-height:48px;padding:10px 14px;background:var(--tt-card,#fff);border:1px solid var(--tt-border,#dbe5f1);border-radius:14px;color:var(--tt-text);font:inherit}
.camp-browser button{min-height:44px;min-width:44px;padding:9px 14px;border:1px solid var(--tt-border,#dbe5f1);border-radius:12px;background:var(--tt-card,#fff);color:var(--tt-text,#183455);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.camp-browser :is(a,button,input,summary):focus-visible{outline:3px solid var(--tt-accent,#1768e9);outline-offset:3px}
body.tt-camp-level-selected:not(.ja-bootcamp-shell) .wrap>.ey,body.tt-camp-level-selected:not(.ja-bootcamp-shell) .wrap>h1,body.tt-camp-level-selected:not(.ja-bootcamp-shell) .wrap>.intro{display:none}
body.tt-camp-level-selected.kr-page #kr-studio>.kr-kicker,body.tt-camp-level-selected.kr-page #kr-studio>h1,body.tt-camp-level-selected.kr-page #kr-studio>p{display:none}
body.tt-camp-level-selected.ja-bootcamp-shell .ja-hero{display:none}
.camp-episode-list,.camp-completed-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.camp-episode{display:flex;flex-direction:column;background:var(--tt-card,#fff);border:1px solid var(--tt-border,#dbe5f1);border-radius:20px;overflow:hidden;box-shadow:0 8px 22px #18345508}
.camp-episode-link{display:flex;flex:1;flex-direction:column;padding:20px 20px 16px;text-decoration:none;color:inherit!important}.camp-episode-link p{font-size:16px;line-height:1.6}
.camp-start{margin-top:auto;padding-top:8px;display:block;color:var(--tt-accent,#1768e9);font-size:14px;font-weight:800}
.camp-pending-note{color:var(--tt-muted,#687b92);font-size:13px;font-weight:700}
.camp-episode-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 20px 16px}.camp-complete-mark{font-size:13px;color:var(--tt-muted)}
.camp-start-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:112px;min-height:44px;padding:0 18px;border:1px solid #1768d5;border-radius:12px;background:#1768d5;color:#fff!important;text-decoration:none;font:800 14px/1.2 Inter,"Noto Sans KR",system-ui,sans-serif;letter-spacing:.02em;box-shadow:0 5px 14px #1768d52e;transition:transform .16s,box-shadow .16s}
.camp-start-button:hover{transform:translateY(-1px);box-shadow:0 8px 17px #1768d545}.camp-start-button span{font-size:17px;line-height:1}
.camp-start-button:focus-visible{outline:3px solid #77afff;outline-offset:3px}
html[data-appearance=dark] .camp-start-button{border-color:#4d9af5;background:#2165c9;color:#fff!important;box-shadow:0 5px 14px #0004}
.camp-completed{margin-top:24px;border:1px solid var(--tt-border,#dbe5f1);border-radius:18px;background:var(--tt-card,#fff);padding:0 16px 16px}.camp-completed:not([open]){padding-bottom:0}.camp-completed summary{display:flex!important;justify-content:space-between;gap:12px;align-items:center;min-height:60px;padding:12px 0!important;cursor:pointer;font-size:16px;font-weight:750}.camp-completed summary:after{content:'⌄';margin-left:4px}.camp-completed[open] summary:after{transform:rotate(180deg)}.camp-shelf-count{margin-left:auto}.camp-completed .camp-episode{box-shadow:none}.camp-completed-list>p{grid-column:1/-1}
.camp-all-completed{margin:22px 0 28px;border:1px solid var(--tt-border,#dbe5f1);border-radius:18px;background:var(--tt-card,#fff);overflow:hidden}.camp-missions-toggle{width:100%;min-height:64px;display:flex;gap:12px;align-items:center;text-align:left;padding:12px 18px!important;border:0!important;border-radius:0!important;background:transparent!important;font-size:16px!important}.camp-missions-toggle>span:nth-child(2){flex:1}.camp-missions-toggle small{display:block;color:var(--tt-muted,#5d6979);font-weight:500;font-size:12px;margin-top:3px}.camp-missions-toggle>strong{font-size:16px}.camp-mission-intro{margin:0!important;padding:5px 18px 9px;color:var(--tt-muted,#5d6979);font-size:13px!important;line-height:1.5!important}.camp-mission-bin{margin:8px 12px;border:1px solid var(--tt-border,#dbe5f1);border-radius:14px;background:var(--tt-raised,#f7f5ed);overflow:hidden}.camp-mission-bin:last-child{margin-bottom:12px}.camp-mission-bin summary{display:flex;align-items:center;gap:12px;min-height:54px;padding:10px 15px;cursor:pointer;list-style:none}.camp-mission-bin summary::-webkit-details-marker{display:none}.camp-mission-bin summary strong{display:grid;place-items:center;min-width:42px;min-height:32px;border-radius:9px;background:#fff0a9;color:#243957;font-size:16px}.camp-mission-bin[data-level^=B] summary strong{background:#d9ecfa}.camp-mission-bin[data-level^=C] summary strong{background:#dcefd7}.camp-mission-bin summary span{margin-left:auto;color:var(--tt-muted,#5d6979);font-size:13px;font-weight:700}.camp-mission-bin summary i{font-style:normal;color:var(--tt-muted,#5d6979);transition:transform .2s}.camp-mission-bin[open] summary i{transform:rotate(180deg)}.camp-mission-bin-list{background:var(--tt-card,#fff)}.camp-mission-row{display:flex;align-items:center;gap:12px;padding:9px 14px;border-top:1px solid var(--tt-border,#dbe5f1)}.camp-mission-row a{flex:1;min-width:0;min-height:44px;color:var(--tt-text,#183455);text-decoration:none}.camp-mission-row small{display:block;color:var(--tt-muted,#5d6979);font-size:12px;margin-bottom:4px}.camp-mission-row strong{font-size:15px;line-height:1.5}.camp-mission-row button{min-width:76px;flex:none}.camp-mission-empty{margin:0!important;padding:14px 16px;border-top:1px solid var(--tt-border,#dbe5f1);color:var(--tt-muted,#5d6979);font-size:13px!important}
/* Story Camp's leaf archive changes presentation only; progress and undo remain shared. */
.camp-story-leaf-archive .camp-all-completed{border-color:#b7d0bb;background:color-mix(in srgb,var(--tt-card,#fff) 90%,#d9ebd7);box-shadow:0 10px 26px #244d2710}
.camp-story-leaf-archive .camp-missions-toggle>span:first-child{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;background:#dcebd7;font-size:24px}
.camp-story-leaf-archive .camp-mission-bin{border-color:#bbd0bc;background:color-mix(in srgb,var(--tt-card,#fff) 88%,#d8ead5)}
.camp-story-leaf-archive .camp-mission-bin summary strong{border-radius:50%;background:#dbead6;color:#31583e}
.camp-story-leaf-archive .camp-mission-row{border-color:#d5e3d2}
.camp-story-leaf-archive .camp-mission-row a strong{color:var(--tt-heading,var(--tt-text,#183455))}
html[data-appearance=dark] .camp-story-leaf-archive .camp-all-completed{border-color:#49634d;background:#1d3127}
html[data-appearance=dark] .camp-story-leaf-archive .camp-missions-toggle>span:first-child,html[data-appearance=dark] .camp-story-leaf-archive .camp-mission-bin summary strong{background:#37533d;color:#e5f0e5}
.camp-empty{grid-column:1/-1;padding:22px;border:1px solid var(--tt-border,#dbe5f1);border-radius:20px;background:var(--tt-card,#fff)}.camp-empty a{min-height:44px;display:inline-flex;align-items:center;font-weight:700;color:var(--tt-accent)}
.camp-pagination{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:20px}.camp-pagination button:disabled{opacity:.45;cursor:default}
.camp-starters:not(:empty){border-top:1px solid var(--tt-border);padding-top:28px;margin-top:28px}.camp-starters>.camp-level-heading{margin-bottom:18px}.camp-notice{font-size:13px!important;margin-top:24px!important}
html[data-appearance=dark] .camp-levels>a[data-group=A]{--camp-paper:#3a3328;--camp-line:#65563e;--camp-ink:#f2ead0}html[data-appearance=dark] .camp-levels>a[data-group=B]{--camp-paper:#243c48;--camp-line:#446575;--camp-ink:#dfedf8}html[data-appearance=dark] .camp-levels>a[data-group=C]{--camp-paper:#293c31;--camp-line:#45664c;--camp-ink:#e0efdf}html[data-appearance=dark] .camp-levels>a.is-level-complete{--camp-paper:#284536;--camp-ink:#e0e5ea;--camp-line:#5c9c70}html[data-appearance=dark] .camp-levels small{color:#c1d0df!important}html[data-appearance=dark] .camp-level-meter{background:#ffffff30}
@media(max-width:900px){.camp-episode-list,.camp-completed-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.camp-levels{gap:10px}.camp-levels>a{min-height:102px;padding:16px;border-radius:17px}.camp-levels>a::after{top:13px;right:14px}.camp-levels strong{font-size:24px}.camp-episode-list,.camp-completed-list{grid-template-columns:1fr}.camp-browser{margin-top:24px}.camp-episode-link{padding:18px 16px 12px}.camp-episode-actions{padding:0 16px 16px}.camp-completed{padding-left:12px;padding-right:12px}.camp-search>div{flex-wrap:wrap}.camp-search input{flex:1 1 180px}}
@media(max-width:375px){.camp-level-heading-row{align-items:flex-start;flex-wrap:wrap}.camp-levels>a{padding:14px}.camp-levels strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){.camp-levels>a{transition:none}}
@media(max-width:650px){.camp-level-landing{margin-bottom:20px}.camp-change-level{margin-bottom:22px}.camp-level-landing h2{font-size:30px!important}.camp-level-landing p{font-size:16px!important}}
@media(max-width:650px){.camp-cefr-guide{padding:22px 18px}.camp-cefr-scale>div{grid-template-columns:1fr;gap:4px;padding:18px}.camp-cefr-scale span{grid-column:1;grid-row:auto;margin-top:6px}.camp-cefr-note{padding:15px}}
