/* ===== 洋楽授業ワークシートくん ===== */
.wsk-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(1200px 500px at 85% -10%,#ffe9b8 0,transparent 60%),radial-gradient(900px 420px at -10% 110%,#ffd6e0 0,transparent 55%),var(--bg)}
.wsk-hero .wrap{position:relative;padding:54px 20px 46px;display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center}
.wsk-k{display:flex;align-items:center;gap:10px;font:400 15px/1 var(--disp);letter-spacing:.22em;color:var(--gold)}
.wsk-hero h1{font-size:clamp(26px,3.6vw,44px);line-height:1.25;margin:14px 0 14px;font-weight:900;letter-spacing:.01em}
.wsk-hero h1 em{font-style:normal;background:linear-gradient(100deg,#e08a00,var(--hot) 75%);-webkit-background-clip:text;background-clip:text;color:transparent}
.wsk-hero h1 small{display:block;font-size:.5em;color:var(--tx2);font-weight:700;margin-top:8px}
.wsk-lead{color:var(--tx2);font-size:15.5px;margin:0 0 18px}
.wsk-feat{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.wsk-feat li{font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line)}
.wsk-feat li b{color:var(--hot)}
.wsk-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.wsk-mock{position:relative;height:340px}
.wsk-mock .pp{position:absolute;width:62%;aspect-ratio:210/297;background:#fff;border-radius:4px;box-shadow:0 18px 50px rgba(60,40,10,.18),0 2px 6px rgba(0,0,0,.08);padding:14px 13px;overflow:hidden}
.wsk-mock .pp:nth-child(1){left:2%;top:18px;transform:rotate(-7deg)}
.wsk-mock .pp:nth-child(2){left:34%;top:0;transform:rotate(5deg)}
.wsk-mock .pp b{display:block;font:italic 700 17px/1.1 "Playfair Display",serif;margin:6px 0 8px}
.wsk-mock .pp i{display:block;height:5px;border-radius:3px;background:#eee;margin:6px 0}
.wsk-mock .pp i.s{width:60%}.wsk-mock .pp i.h{background:#ffd76a;width:38%}.wsk-mock .pp i.r{background:#ffc2d1;width:46%}
.wsk-mock .pp .bar{display:flex;gap:6px;align-items:center;font:400 9px/1 var(--disp);letter-spacing:.14em;color:#999}
.wsk-mock .pp .bar svg{width:16px;height:16px}
.wsk-mock .pp .qr{position:absolute;right:12px;top:12px;width:30px;height:30px;background:repeating-linear-gradient(90deg,#111 0 3px,#fff 3px 5px),#111;opacity:.85;border-radius:2px}
.wsk-mock .stamp{position:absolute;right:2%;bottom:6px;background:var(--hot);color:#fff;font:400 15px/1.05 var(--disp);letter-spacing:.08em;padding:12px 14px;border-radius:50%;width:88px;height:88px;display:grid;place-items:center;text-align:center;transform:rotate(-10deg);box-shadow:0 10px 24px rgba(232,23,79,.35)}

.wsk-app{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;align-items:start}
.wsk-form,.wsk-side>section{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px}
.wsk-step{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:18px;font-weight:900}
.wsk-step i{font:400 13px/1 var(--disp);letter-spacing:.12em;background:#1c1a21;color:var(--sun);padding:6px 9px;border-radius:6px;font-style:normal}
.wsk-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wsk-f{display:block;margin:0 0 14px}
.wsk-f>span{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:var(--tx2)}
.wsk-f>span em{font-style:normal;color:var(--hot);margin-left:4px}
.wsk-f input[type=text],.wsk-f input[type=password],.wsk-f select,.wsk-f textarea,.wsk-promptbox{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;background:#fffdf8;padding:11px 13px;font:15px/1.6 var(--jp);color:var(--tx)}
.wsk-f textarea{min-height:300px;resize:vertical;font:14.5px/1.75 ui-monospace,"Cascadia Mono",Consolas,var(--jp)}
.wsk-f input:focus,.wsk-f select:focus,.wsk-f textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,184,46,.25)}
.wsk-lyhd{display:flex;justify-content:space-between;align-items:center;gap:10px}
.wsk-count{font-size:12.5px;color:var(--mut);font-weight:700}
.wsk-count.warn{color:var(--hot)}
.wsk-hint{font-size:12.5px;color:var(--mut);margin:6px 0 0}
.wsk-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:6px 0 16px;padding:16px;border-radius:14px;background:var(--bg2)}
.wsk-opts .wsk-f{margin:0}
.wsk-seg{display:flex;flex-wrap:wrap;gap:6px}
.wsk-seg label{position:relative}
.wsk-seg input{position:absolute;opacity:0;pointer-events:none}
.wsk-seg span{display:inline-block;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13px;font-weight:700;cursor:pointer;transition:.15s}
.wsk-seg input:checked+span{background:#1c1a21;color:#fff;border-color:#1c1a21}
.wsk-seg input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.wsk-check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.6;margin:0 0 6px;cursor:pointer}
.wsk-check input{width:18px;height:18px;margin-top:3px;accent-color:var(--hot);flex:none}
.wsk-agree{border:2px solid var(--sun);background:#fff8e6;border-radius:14px;padding:13px 15px;margin:4px 0 18px}
.wsk-agree a{color:var(--gold);font-weight:700;text-decoration:underline}

.wsk-eng{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}
.wsk-eng button{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:12px 10px;text-align:left;cursor:pointer;font:inherit;transition:.15s;color:var(--tx)}
.wsk-eng button b{display:block;font-size:14px}
.wsk-eng button small{display:block;font-size:11.5px;color:var(--mut);line-height:1.45;margin-top:3px}
.wsk-eng button[aria-selected=true]{border-color:#1c1a21;background:#1c1a21;color:#fff;box-shadow:0 10px 24px rgba(28,26,33,.2)}
.wsk-eng button[aria-selected=true] small{color:#d7d2c8}
.wsk-eng button[aria-selected=true] b::before{content:"● ";color:var(--sun)}
.wsk-panel{border-radius:14px;padding:16px;background:var(--bg2)}
.wsk-quota{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}
.wsk-quota b{font:400 46px/1 var(--disp);color:var(--hot)}
.wsk-quota[data-state=none] b,.wsk-quota[data-state=off] b{color:var(--mut);font-size:30px}
.wsk-quota span{font-size:13px;font-weight:700;color:var(--tx2)}
.wsk-go{width:100%;font-size:17px;padding:16px 20px;border:0;border-radius:999px;cursor:pointer;color:#fff;font-weight:900;background:linear-gradient(100deg,#ff8a00,var(--hot));box-shadow:0 12px 26px rgba(232,23,79,.28);transition:transform .15s,box-shadow .15s;display:flex;align-items:center;justify-content:center;gap:10px}
.wsk-go:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(232,23,79,.34)}
.wsk-go svg{width:20px;height:20px}
.wsk-small{font-size:12px;color:var(--mut);line-height:1.6;margin:10px 0 0}
.wsk-pvs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.wsk-keyrow{display:flex;gap:8px}
.wsk-keyrow input{flex:1;min-width:0}
.wsk-keyinfo{font-size:12px;color:var(--mut);margin:8px 0 12px;line-height:1.6}
.wsk-keyinfo.ok{color:#137a3a}
.wsk-mrow{display:flex;gap:8px;margin-bottom:12px}
.wsk-mrow select{flex:1;min-width:0}
.btn.sm{padding:8px 14px;font-size:13px}
.wsk-guide{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:0 14px}
.wsk-guide summary{cursor:pointer;font-weight:900;font-size:14px;padding:12px 0}
.wsk-guide ol{padding-left:20px;margin:0 0 10px;font-size:13.5px}
.wsk-guide li{margin:5px 0}
.wsk-guide a{color:var(--gold);font-weight:700;text-decoration:underline}
.wsk-guide p{font-size:12.5px;color:var(--tx2)}
.wsk-guide .warn{background:#fff3f5;border-radius:8px;padding:8px 10px;color:#8a1030}
.wsk-chat-ai{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.wsk-paste{min-height:120px!important}
.wsk-err{margin:16px 0 0;border:2px solid var(--hot);background:#fff3f6;border-radius:14px;padding:14px 16px}
.wsk-err b{color:var(--hot);font-size:15px}
.wsk-err p{margin:4px 0 0;font-size:13.5px}
.wsk-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:84px}
.wsk-side h3{margin:0 0 10px;font-size:15px}
.wsk-side ol,.wsk-side ul{margin:0;padding-left:18px;font-size:13.5px}
.wsk-side li{margin:4px 0}
.wsk-hist ul{list-style:none;padding:0;margin:0}
.wsk-hist li{display:flex;gap:4px;border-top:1px solid var(--line)}
.wsk-hist li button{border:0;background:none;padding:9px 4px;text-align:left;cursor:pointer;font:inherit;color:var(--tx);flex:1;min-width:0}
.wsk-hist li button b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wsk-hist li button span{font-size:11.5px;color:var(--mut)}
.wsk-hist li .x{flex:none;color:var(--mut);font-size:18px;padding:0 8px}
.wsk-hist li button:hover b{color:var(--gold)}
.wsk-sample-card{background:linear-gradient(135deg,#1c1a21,#3a2a45)!important;color:#fff;border:0!important}
.wsk-sample-card p{font-size:13px;color:#dcd6e6;margin:0 0 12px}
.wsk-sample-card .btn{background:var(--sun);border-color:var(--sun);color:#1c1a21}

/* 進行中 */
.wsk-prog{position:fixed;inset:0;z-index:90;background:rgba(20,16,26,.72);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}
.wsk-prog[hidden]{display:none}
.wsk-prog-in{width:min(520px,100%);background:#141118;color:#fff;border-radius:22px;padding:28px 26px;box-shadow:0 30px 80px rgba(0,0,0,.5);text-align:center;border:1px solid #3a3342}
.wsk-vinyl{width:120px;height:120px;margin:0 auto 14px;border-radius:50%;background:repeating-radial-gradient(circle,#111 0 2px,#1d1d22 2px 4px);position:relative;animation:wspin 1.6s linear infinite;box-shadow:0 0 0 3px #2a2530}
.wsk-vinyl::after{content:"";position:absolute;inset:38%;border-radius:50%;background:radial-gradient(circle,#fff 0 9%,var(--hot) 10% 100%)}
@keyframes wspin{to{transform:rotate(360deg)}}
.wsk-prog-in h3{margin:0 0 4px;font-size:17px}
.wsk-prog-s{color:var(--sun);font-weight:700;font-size:14px;min-height:1.6em;margin:0}
.wsk-bar{height:8px;border-radius:99px;background:#2b2530;overflow:hidden;margin:14px 0 6px}
.wsk-bar i{display:block;height:100%;width:3%;background:linear-gradient(90deg,var(--sun),var(--hot));transition:width .4s}
.wsk-prog-p{font:400 22px/1 var(--disp);letter-spacing:.1em;color:#fff}
.wsk-prog-tip{font-size:12.5px;color:#cfc8d9;line-height:1.7;margin:16px 0 0;min-height:4.4em}
.wsk-prog-note{font-size:11.5px;color:#8f879b;margin-top:10px}
.wsk-toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:#1c1a21;color:#fff;padding:10px 18px;border-radius:999px;font-size:13.5px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:95;max-width:90vw;text-align:center}
.wsk-toast.on{opacity:1;transform:translate(-50%,0)}

/* 結果 */
.wsk-out{margin-top:30px}
.wsk-out[hidden]{display:none}
.wsk-bar2{position:sticky;top:64px;z-index:20;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:rgba(251,248,242,.94);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:18px}
.wsk-bar2 .grp{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.wsk-bar2 .btn.hot{background:var(--hot);color:#fff;border-color:var(--hot)}
.wsk-bar2 .btn.dark{background:#1c1a21;color:#fff;border-color:#1c1a21}
.wsk-bar2 select{border:1px solid var(--line);border-radius:999px;padding:7px 10px;font:700 13px var(--jp);background:var(--card)}
.wsk-bar2 label{font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px}
.wsk-pages{font-size:13px;color:var(--tx2);margin-left:auto}
.wsk-pages b{font:400 20px/1 var(--disp);color:var(--hot)}
.wsk-stage{background:#e9e3d6;border-radius:18px;padding:22px 0;overflow:hidden}
.wsk-sheets{display:flex;flex-direction:column;align-items:center;gap:18px}
.wsk-sheets.editing .wk-body{outline:2px dashed rgba(232,23,79,.35);outline-offset:-2mm;cursor:text}
.wsk-sheets .hide-scr{display:none}
.wsk-file{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.wsk-file input{display:none}

/* ===== 紙（A4）===== */
.wsk-sheets{--fs:1}
.wk-sheet{--ink:#121014;--sub:#5b5662;--rule:#cfc9d3;--tint:#f4f1f6;--ac:#d6164c;--ac2:#b57800;width:210mm;height:297mm;background:#fff;color:var(--ink);box-shadow:0 10px 30px rgba(40,30,10,.18);flex:none;overflow:hidden;font-family:"BIZ UDPGothic","Noto Sans JP",sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.wk-in{box-sizing:border-box;height:100%;padding:11mm 12mm 8mm 15mm;display:flex;flex-direction:column}
.wk-body{flex:1;min-height:0;overflow:hidden;font-size:calc(9.2pt*var(--fs));line-height:1.5}
.wk-sheet [lang=en]{font-family:"Noto Sans","Helvetica Neue",Arial,"Noto Sans JP",sans-serif}
/* 見出し */
.wk-hd{display:flex;justify-content:space-between;gap:6mm;padding-bottom:3mm;border-bottom:.9mm solid var(--ink);position:relative}
.wk-hd::after{content:"";position:absolute;left:0;bottom:-2.1mm;width:38mm;height:.9mm;background:var(--ac)}
.wk-hd-l{min-width:0;flex:1}
.wk-brand{display:flex;align-items:center;gap:2.2mm;margin:0;font:400 9.5pt/1 "Bebas Neue",sans-serif;letter-spacing:.18em;color:var(--ink)}
.wk-brand svg{width:7mm;height:7mm}
.wk-brand i{font-style:normal;color:var(--ac);margin-left:2.4mm}
.wk-hd h1{font:italic 700 25pt/1.08 "Playfair Display",Georgia,serif;margin:2.6mm 0 1.4mm;letter-spacing:-.005em;overflow-wrap:anywhere}
.wk-hd h1.long{font-size:19pt}
.wk-ar{margin:0;font-size:10.5pt;font-weight:700}
.wk-ar em{font-style:normal;font-weight:400;color:var(--sub);margin-left:3mm;font-size:9pt}
.wk-meta{display:flex;gap:1.6mm;margin:2mm 0 0;flex-wrap:wrap}
.wk-meta span{font-size:7.6pt;font-weight:700;border:.25mm solid var(--ink);border-radius:9mm;padding:.4mm 2.4mm}
.wk-qrs{display:flex;gap:3mm;flex:none}
.wk-qrs figure{margin:0;width:20mm;text-align:center}
.wk-qrs svg{width:20mm;height:20mm;display:block}
.wk-qrs figcaption{font:400 6.6pt/1.2 "Bebas Neue","Noto Sans JP",sans-serif;letter-spacing:.06em;margin-top:1mm;color:var(--sub)}
.wk-hd.te{border-bottom-color:var(--ac)}
.wk-te-badge{flex:none;align-self:center;width:24mm;height:24mm;border-radius:50%;border:.8mm solid var(--ac);color:var(--ac);display:grid;place-items:center;text-align:center;font:400 11pt/1 "Bebas Neue",sans-serif;letter-spacing:.1em;transform:rotate(-8deg)}
.wk-name{display:flex;gap:4mm;align-items:flex-end;margin:4.6mm 0 3.4mm;font:400 10pt/1 "Bebas Neue",sans-serif;letter-spacing:.08em}
.wk-name span{display:flex;align-items:flex-end;gap:1.5mm}
.wk-name u{display:inline-block;width:16mm;border-bottom:.3mm solid var(--ink);height:5mm}
.wk-name u.s{width:9mm}
.wk-name .nm{flex:1}.wk-name .nm u{flex:1}
.wk-mhd{display:flex;gap:4mm;align-items:baseline;border-bottom:.5mm solid var(--ink);padding-bottom:1.6mm;margin-bottom:3mm;font-size:8pt}
.wk-mhd .t{font:italic 700 11pt/1.1 "Playfair Display",serif}
.wk-mhd .a{color:var(--sub);font-weight:700}
.wk-mhd .nm{margin-left:auto;display:flex;gap:1.5mm;align-items:flex-end;font:400 9pt/1 "Bebas Neue",sans-serif;letter-spacing:.08em}
.wk-mhd .nm u{width:42mm;border-bottom:.3mm solid var(--ink);height:4mm;display:inline-block}
/* セクション */
.wk-s{margin:0 0 3.4mm}
.wk-tr{display:flex;align-items:baseline;gap:2.4mm;border-bottom:.3mm solid var(--ink);padding-bottom:1mm;margin-bottom:2mm;flex-wrap:wrap}
.wk-tr.mini{margin-bottom:1.4mm}
.wk-no{font:400 8pt/1 "Bebas Neue",sans-serif;letter-spacing:.14em;color:#fff;background:var(--ink);padding:1mm 1.8mm .7mm;border-radius:.8mm}
.wk-tr b{font:400 14pt/1 "Bebas Neue",sans-serif;letter-spacing:.06em}
.wk-trj{font-size:8.4pt;font-weight:700;color:var(--sub)}
.wk-listen,.wk-score{margin-left:auto;font:400 8.5pt/1 "Bebas Neue",sans-serif;letter-spacing:.08em;display:flex;align-items:center;gap:1.2mm}
.wk-score{margin-left:3mm}
.wk-listen i{width:3.2mm;height:3.2mm;border:.25mm solid var(--ink);border-radius:50%;display:inline-block}
.wk-score u{display:inline-block;width:8mm;border-bottom:.3mm solid var(--ink);height:4mm}
.wk-warm-g{display:grid;grid-template-columns:1.1fr 1fr;gap:3.4mm}
.wk-aim small,.wk-box small,.wk-self small{display:block;font:400 7.6pt/1.2 "Bebas Neue","Noto Sans JP",sans-serif;letter-spacing:.1em;color:var(--ac);margin-bottom:.8mm}
.wk-aim p{margin:0 0 1.8mm;font-weight:700;font-size:calc(9.4pt*var(--fs))}
.wk-aim p.sm{font-weight:400;font-size:calc(8.4pt*var(--fs));color:#2c2830}
.wk-mood{display:flex;gap:1.4mm;flex-wrap:wrap;align-items:center;font-size:8pt!important;font-weight:400!important}
.wk-mood small{display:inline!important;margin:0 1mm 0 0!important}
.wk-mood span{border:.25mm solid var(--ink);border-radius:9mm;padding:0 2.2mm}
.wk-mood em{font-style:normal;color:var(--sub);font-size:7pt}
.wk-box{border:.35mm solid var(--ink);border-radius:2mm;padding:2.2mm 2.6mm;background:var(--tint)}
.wk-words{display:flex;flex-wrap:wrap;gap:1.4mm 1.6mm}
.wk-words span{background:#fff;border:.25mm solid #9a94a0;border-radius:1mm;padding:.3mm 1.8mm;font-size:calc(8.8pt*var(--fs));font-weight:700}
/* 歌詞 */
.wk-lh{display:grid;grid-template-columns:1.18fr 1fr;gap:4mm;font:400 7.6pt/1 "Bebas Neue","Noto Sans JP",sans-serif;letter-spacing:.1em;color:var(--sub);padding:0 0 1mm}
.wk-ln{display:grid;grid-template-columns:1.18fr 1fr;gap:4mm;align-items:baseline;border-bottom:.2mm dotted var(--rule);padding:.95mm 0}
.wk-ln.one{grid-template-columns:1fr}
.wk-ln.full{grid-template-columns:1.1fr 1fr}
.wk-ln p{margin:0}
.wk-ln .en{font-size:calc(10.6pt*var(--fs));line-height:1.55;font-weight:500}
.wk-ln .ja{font-size:calc(8.4pt*var(--fs));line-height:1.5;color:#46414c}
.wk-ln u{text-decoration:none;font-weight:900;border-bottom:.4mm solid var(--ac)}
.wk-bl{display:inline-block;min-width:var(--w,18mm);border-bottom:.35mm solid var(--ink);position:relative;height:1.05em;vertical-align:-.15em;margin:0 .6mm}
.wk-bl i{position:absolute;left:-.4mm;top:-1.25mm;font:900 6.2pt/1 "Noto Sans",sans-serif;font-style:normal;background:var(--ink);color:#fff;border-radius:1mm;padding:.35mm .9mm}
.wk-wl{display:block;border-bottom:.25mm solid #9a94a0;height:4.2mm}
.wk-sec{font:400 8pt/1 "Bebas Neue",sans-serif;letter-spacing:.16em;color:var(--ac);padding:2mm 0 .4mm;border-bottom:.2mm dotted var(--rule)}
/* T/F */
.wk-tf{margin:0;padding-left:5mm;display:grid;grid-template-columns:1fr 1fr;gap:1.2mm 5mm}
.wk-tf li{display:flex;justify-content:space-between;gap:3mm;font-size:calc(8.8pt*var(--fs));border-bottom:.2mm dotted var(--rule);padding-bottom:.6mm}
.wk-tf b{flex:none;font:400 10pt/1 "Bebas Neue",sans-serif;letter-spacing:.12em}
/* 語句 */
.wk-voc{width:100%;border-collapse:collapse;font-size:calc(8.5pt*var(--fs))}
.wk-voc td{border-bottom:.2mm solid var(--rule);padding:1mm 1.4mm;vertical-align:top}
.wk-voc .st{color:var(--ac2);white-space:nowrap;font-size:7.4pt;letter-spacing:-.05em;width:9mm}
.wk-voc .w{font-weight:900;white-space:nowrap}
.wk-voc .p{color:var(--sub);font-size:7.2pt;white-space:nowrap}
.wk-voc .m{font-weight:700;width:30mm}
.wk-voc .x small{display:block;color:var(--sub);font-size:7.4pt}
/* 文法 */
.wk-g{border:.35mm solid var(--ink);border-radius:2.2mm;padding:2.4mm 3mm 2.2mm;margin-bottom:2.4mm;break-inside:avoid}
.wk-g header{display:flex;align-items:center;gap:2.2mm;flex-wrap:wrap;margin-bottom:1.4mm}
.wk-gn{font:400 10pt/1 "Bebas Neue",sans-serif;background:var(--ac);color:#fff;border-radius:50%;width:6.6mm;height:6.6mm;display:grid;place-items:center;letter-spacing:0}
.wk-g h3{margin:0;font-size:calc(11pt*var(--fs));font-weight:900}
.wk-g header em{font-style:normal;font-size:7.2pt;font-weight:700;color:var(--ac2);border:.25mm solid var(--ac2);border-radius:9mm;padding:.2mm 2mm}
.wk-gl{margin:0 0 1.4mm;background:var(--tint);border-left:1mm solid var(--ac);padding:1.2mm 2.4mm;font-size:calc(9.4pt*var(--fs));font-style:italic;font-weight:500}
.wk-gl span,.wk-gf span{font:normal 400 7pt/1 "Bebas Neue",sans-serif;letter-spacing:.12em;color:var(--ac);margin-right:2mm}
.wk-gp{margin:0 0 1.2mm;font-size:calc(8.6pt*var(--fs))}
.wk-gf{margin:0 0 1.2mm;font-weight:700;font-size:calc(8.6pt*var(--fs))}
.wk-ge{margin:0 0 1.2mm;font-size:calc(8.6pt*var(--fs))}
.wk-ge small{color:var(--sub);margin-left:2mm;font-size:7.6pt}
.wk-gq{margin:1.4mm 0 0;padding-left:5mm;font-size:calc(8.6pt*var(--fs));border-top:.2mm dashed var(--rule);padding-top:1.2mm}
.wk-gq li{margin:.6mm 0}
.wk-ans{display:inline-block;width:34mm;border-bottom:.25mm solid var(--ink);margin-left:2mm;height:3.6mm;vertical-align:bottom}
/* 歌う */
.wk-sing{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm}
.wk-sing div{border:.25mm solid var(--rule);border-radius:2mm;padding:1.6mm 2.2mm}
.wk-sing b{display:block;font-size:calc(9pt*var(--fs))}
.wk-sing .k{display:block;color:var(--ac);font-weight:900;font-size:8.4pt}
.wk-sing small{font-size:7.4pt;color:var(--sub)}
/* トリビア */
.wk-triv{display:grid;grid-template-columns:1fr 1fr;gap:2mm 3mm}
.wk-triv div{position:relative;padding:1.6mm 2.2mm 1.6mm 9mm;border-top:.3mm solid var(--ink)}
.wk-tn{position:absolute;left:0;top:1.4mm;font:400 13pt/1 "Bebas Neue",sans-serif;color:var(--ac)}
.wk-triv b{display:block;font-size:calc(8.8pt*var(--fs));font-weight:900}
.wk-triv p{margin:.4mm 0 0;font-size:calc(8pt*var(--fs));line-height:1.55;color:#2c2830}
/* 感想 */
.wk-rv{display:grid;grid-template-columns:1fr 46mm;gap:4mm}
.wk-rv .q{margin:1.2mm 0 .6mm;font-size:calc(8.6pt*var(--fs));font-weight:700}
.wk-rv .q b{font:400 9.4pt/1 "Bebas Neue",sans-serif;background:var(--ink);color:#fff;padding:.6mm 1.4mm;border-radius:.8mm;margin-right:1.2mm;letter-spacing:.06em}
.wk-talk{display:flex;flex-wrap:wrap;gap:1mm 2.4mm;font-weight:400;margin-top:.6mm}
.wk-talk i{font-style:normal;font-size:7.6pt;color:var(--sub);background:var(--tint);padding:0 1.6mm;border-radius:1mm}
.wk-lines{background:repeating-linear-gradient(transparent 0 calc(7.4mm - .25mm),#a9a3ae calc(7.4mm - .25mm) 7.4mm)}
.wk-lines.n2{height:14.8mm}.wk-lines.n4{height:29.6mm}.wk-lines.n22{height:162.8mm}
.wk-self{border:.35mm solid var(--ink);border-radius:2.2mm;padding:2.2mm 2.6mm;font-size:7.8pt}
.wk-self p{margin:0 0 1.6mm;line-height:1.35}
.wk-self p span{display:block;font-size:11pt;letter-spacing:.12em;color:#8e8894}
.wk-tcm{margin-top:2mm!important}
.wk-tcbox{height:16mm;border:.25mm dashed #9a94a0;border-radius:1.4mm}
.wk-squeeze{zoom:.86}
.wk-selfrow{display:flex;gap:3mm;margin-top:1.4mm;font-size:7.6pt}
.wk-selfrow span{flex:1;border:.25mm solid var(--rule);border-radius:1.4mm;padding:.8mm 2mm;display:flex;justify-content:space-between;gap:2mm}
.wk-selfrow i{font-style:normal;color:#8e8894;letter-spacing:.08em}
.wk-voc2{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6mm 5mm;font-size:calc(8.6pt*var(--fs))}
.wk-voc2 li{display:flex;gap:1.6mm;align-items:baseline;border-bottom:.2mm dotted var(--rule);padding-bottom:.4mm}
.wk-voc2 i{font-style:normal;color:var(--ac2);font-size:7pt;letter-spacing:-.05em}
.wk-voc2 b{white-space:nowrap}
.wk-voc2 span{color:#2c2830}
.wk-pred{margin:0 0 1mm;font-size:calc(8.6pt*var(--fs))}
.wk-pred.s{font-size:7.4pt;color:var(--sub);margin-top:1mm}
.wk-plan3{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm;margin-top:2.4mm}
.wk-plan3 span{border:.25mm solid var(--rule);border-radius:1.6mm;padding:1mm 2mm;font-size:7.6pt;line-height:1.35;display:flex;gap:1.6mm;align-items:center}
.wk-plan3 b{font:400 11pt/1 "Bebas Neue",sans-serif;color:var(--ac);letter-spacing:.04em}
.wk-lno{position:absolute;left:-6.5mm;top:1.4mm;width:5mm;text-align:right;font:700 6pt/1 "Noto Sans",sans-serif;color:#9a94a0}
.wk-ln{position:relative}
.wk-bl em{position:absolute;left:5mm;bottom:.3mm;font:italic 700 8pt/1 "Noto Sans",sans-serif;color:#7a7480}
.wk-kana{display:flex;align-items:flex-end;gap:1mm;font-size:7.4pt;color:var(--sub);margin:.6mm 0}
.wk-kana u{flex:1;border-bottom:.25mm solid var(--ink);height:4.4mm}
.wk-create{border:.35mm dashed var(--ink);border-radius:2.2mm;padding:2.2mm 3mm}
.wk-create .fr{margin:0 0 1.2mm;font-size:calc(11pt*var(--fs));font-weight:700}
.wk-create .fr u{display:inline-block;width:34mm;border-bottom:.35mm solid var(--ink);height:1em;vertical-align:-.15em;margin:0 1mm}
.wk-create .ex{margin:0 0 1mm;font-size:7.8pt;color:var(--sub)}
.wk-create .ex span{font:400 7.4pt "Bebas Neue",sans-serif;letter-spacing:.12em;color:var(--ac);margin-right:2mm}
.wk-self em{display:block;font-style:normal;font-weight:900;font-size:7pt;color:var(--ac2)}
/* 先生用 */
.wk-key{margin:0;padding-left:7mm;columns:2;column-gap:6mm;font-size:calc(8.6pt*var(--fs))}
.wk-key li{break-inside:avoid;margin:0 0 1.2mm;padding-bottom:.8mm;border-bottom:.2mm dotted var(--rule)}
.wk-key li::marker{font-weight:900;color:var(--ac)}
.wk-key b{font-size:calc(9.6pt*var(--fs));margin-right:1.6mm}
.wk-key .p{color:var(--sub);font-size:7pt;margin-right:1.4mm}
.wk-key small{display:block;color:var(--sub);font-size:7.4pt}
.wk-qa{display:grid;grid-template-columns:1fr 1fr;gap:2mm 6mm;font-size:calc(8.4pt*var(--fs))}
.wk-qa h4,.wk-notes h4{margin:0 0 .8mm;font-size:8.6pt;color:var(--ac)}
.wk-qa ol{margin:0;padding-left:5mm}
.wk-flow{width:100%;border-collapse:collapse;font-size:calc(8.6pt*var(--fs))}
.wk-flow td{border-bottom:.2mm solid var(--rule);padding:1.2mm 1.6mm;vertical-align:top}
.wk-flow td:first-child{width:12mm;font:400 15pt/1 "Bebas Neue",sans-serif;color:var(--ac);white-space:nowrap}
.wk-flow small{font:700 7pt "Noto Sans JP";color:var(--sub);margin-left:.6mm}
.wk-notes{display:grid;grid-template-columns:1fr 1fr;gap:5mm;font-size:calc(8.4pt*var(--fs))}
.wk-notes ul{margin:0;padding-left:4.4mm}
.wk-check{margin:2mm 0 0;background:#fff4f6;border:.25mm solid var(--ac);border-radius:1.6mm;padding:1.6mm 2.4mm;font-size:8pt}
.wk-check b{color:var(--ac);margin-right:2mm;font:400 9pt "Bebas Neue",sans-serif;letter-spacing:.1em}
.wk-law ul{margin:0;padding-left:4.4mm;font-size:7.8pt;color:#2c2830}
.wk-law li{margin:.4mm 0}
/* 足 */
.wk-ft{display:flex;gap:4mm;align-items:flex-end;border-top:.25mm solid var(--ink);padding-top:1.6mm;margin-top:2mm;font-size:6.2pt;line-height:1.4;color:var(--sub)}
.wk-ft .c{flex:1}
.wk-ft .r{text-align:right;max-width:72mm}
.wk-ft .r i{display:block;font-style:normal;font-weight:700;color:var(--ink)}
.wk-ft .pg{font:400 10pt/1 "Bebas Neue",sans-serif;letter-spacing:.08em;color:var(--ink);white-space:nowrap}

.wsk-chatsteps{margin:0 0 12px;padding-left:20px;font-size:13.5px}
.wsk-how{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wsk-how li{display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}
.wsk-how b{font-size:16px}
.wsk-how p{margin:4px 0 0;font-size:14px;color:var(--tx2)}
.wsk-gn{flex:none;width:40px;height:40px;border-radius:50%;background:#1c1a21;color:var(--sun);display:grid;place-items:center;font:400 22px/1 var(--disp)}
.wsk-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wsk-3>div,.wsk-3>a{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;display:block}
.wsk-3 b{display:block;font-size:17px}
.wsk-3 span{display:inline-block;font-size:12.5px;font-weight:700;color:var(--hot);margin:2px 0 6px}
.wsk-3 p{margin:0;font-size:14px;color:var(--tx2)}
.wsk-3.links a span{color:var(--tx2);font-weight:400}
.wsk-3.links a:hover{border-color:var(--gold)}
.wsk-law-g{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.wsk-lawc{border-radius:16px;padding:18px 20px;border:2px solid}
.wsk-lawc h3{margin:0 0 8px}
.wsk-lawc ul{margin:0;padding-left:18px;font-size:14px}
.wsk-lawc li{margin:6px 0}
.wsk-lawc.ok{border-color:#2e9e5b;background:#f2fbf5}.wsk-lawc.ok h3{color:#1d7a43}
.wsk-lawc.ng{border-color:var(--hot);background:#fff4f6}.wsk-lawc.ng h3{color:var(--hot)}
#wsk-law ul{font-size:14.5px}
@media(max-width:980px){
  .wsk-how,.wsk-3,.wsk-law-g{grid-template-columns:1fr}
  .wsk-hero .wrap{grid-template-columns:1fr;padding:34px 16px 30px}
  .wsk-mock{display:none}
  .wsk-app{grid-template-columns:1fr}
  .wsk-side{position:static}
}
@media(max-width:620px){
  .wsk-row,.wsk-opts{grid-template-columns:1fr}
  .wsk-eng{grid-template-columns:1fr}
  .wsk-form,.wsk-side>section{padding:16px;border-radius:14px}
  .wsk-bar2{top:56px}
  .wsk-pages{margin-left:0;width:100%}
  .wsk-stage{padding:10px 0;border-radius:12px}
}

/* 印刷：プリントだけを出す */
@media print{
  @page{size:A4;margin:0}
  html.wsk-print body{background:#fff!important}
  html.wsk-print body>*:not(main){display:none!important}
  html.wsk-print main>*:not(.wsk-print-root){display:none!important}
  html.wsk-print .wsk-print-root>*:not(.wsk-wrap-out){display:none!important}
  html.wsk-print .wsk-wrap-out>*:not(#wsk-out){display:none!important}
  html.wsk-print #wsk-out>*:not(.wsk-stage){display:none!important}
  html.wsk-print body,html.wsk-print main,html.wsk-print .wsk-print-root,html.wsk-print .wsk-wrap-out,html.wsk-print #wsk-out{margin:0!important;padding:0!important;max-width:none!important;width:auto!important;border:0!important}
  html.wsk-print .wsk-stage{background:none;padding:0;border-radius:0;margin:0}
  html.wsk-print .wsk-sheets{gap:0;display:block;zoom:1!important}
  html.wsk-print .wk-sheet{box-shadow:none;margin:0;break-after:page;page-break-after:always}
  html.wsk-print .wk-sheet:last-child{break-after:auto;page-break-after:auto}
  html.wsk-print .wk-sheet.teacher{display:none!important}
  html.wsk-print.wsk-print-all .wk-sheet.teacher{display:block!important}
  html.wsk-print .wsk-sheets.editing .wk-body{outline:none}
}
/* 完成ワークシートがある曲のお知らせ */
.wsk-pick{margin-top:8px}
.wsk-ready{margin:4px 0 14px;padding:14px 16px;border-radius:12px;background:#fff3cf;box-shadow:inset 0 0 0 1px #f0d48a;font-size:14px;line-height:1.7;color:#4a3300}
.wsk-ready b{display:block;font-size:15px;color:#7a4b00}
.wsk-ready a{display:inline-block;margin-top:4px;font-weight:700;color:#7a4b00;text-decoration:underline;text-underline-offset:3px}
.wsk-ready small{display:block;margin-top:4px;color:var(--tx2,#45414d);font-size:12.5px}
