
:root{font-size:18px;--ink:#292821;--wine:#7a291c;--wine-dark:#4f1b15;--gold:#b98a42;--gold-light:#e2bf76;--blue:#e8eff0;--blue-dark:#3b555d;--olive:#4b5833;--paper:#fffaf0;--line:#d4bd91;--cream:#f0e4ce;--shadow:0 8px 22px #4b2a1720}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Trebuchet MS","Segoe UI",Arial,sans-serif;line-height:1.55;background:radial-gradient(ellipse at 0 0,#fff8e8 0,transparent 52%),#f1e5cf}button,input,select{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:var(--wine);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible{outline:4px solid #225a81;outline-offset:4px}button{border-radius:12px}button:disabled{opacity:.65}img{max-width:100%;height:auto;display:block}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}h1:focus,h2:focus{outline:none}p+p{margin-top:.8rem}.skip{position:absolute;top:-100px;left:20px;background:white;padding:12px;z-index:30}.skip:focus{top:10px}
.mosaic{height:10px;background:repeating-linear-gradient(90deg,#573c22 0 8px,#ecd1a0 8px 17px,#bd813d 17px 25px,#633321 25px 34px,#f0d5a5 34px 44px);border-top:2px solid #4d3121;border-bottom:2px solid #4d3121}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1250px;margin:auto;padding:18px 30px}.brand{font-size:1.3rem;font-weight:900;letter-spacing:.025em;text-decoration:none;color:var(--wine-dark)}.brand small{font-size:.67rem;display:block;font-weight:600;letter-spacing:.02em;color:#60523b;line-height:1.2}.top-tools{display:flex;gap:12px;align-items:center}.size-control{display:flex;align-items:center;gap:4px;background:#fff9ee;border:1px solid var(--line);border-radius:12px;padding:3px}.size-control button{border:0;background:transparent;min-width:45px;min-height:42px;font-weight:800;color:var(--wine-dark)}.size-label{font-size:.78rem;padding:0 7px}.subtle-btn{border:1px solid var(--line);background:#fffaf0;color:var(--wine-dark);padding:9px 14px;min-height:48px;font-weight:700}.main-wrap{max-width:1190px;margin:0 auto;padding:0 30px 35px}
.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;align-items:center;margin:5px 0 26px;border:2px solid var(--gold);background:linear-gradient(110deg,#fffaf0,#f7ecd6);border-radius:20px;box-shadow:var(--shadow);padding:30px;overflow:hidden}.eyebrow{font-size:.8rem;color:var(--wine);font-weight:800;letter-spacing:.09em;margin-bottom:9px}.hero h1{font-size:clamp(2.15rem,4.8vw,3.3rem);color:var(--wine-dark);letter-spacing:-.035em;margin-bottom:12px}.hero h1 span{display:block;color:var(--ink);font-size:.65em;letter-spacing:-.01em;margin-top:8px}.hero p{max-width:550px;font-size:1rem;color:#574c3b}.hero-art{width:100%;border:3px solid #85542e;outline:1px solid #edc77e;border-radius:12px;box-shadow:4px 5px 0 #d4b37c55;transform:rotate(1deg)}.hero-tag{display:inline-flex;background:var(--wine);color:#fff7e8;font-weight:700;padding:5px 12px;border-radius:6px;font-size:.78rem;margin-top:16px}
.section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin:24px 0 15px}.section-heading h2{font-size:1.35rem;color:var(--wine-dark)}.quiet{color:#6a5a43;font-size:.88rem}.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.module-card{display:flex;flex-direction:column;position:relative;padding:0;overflow:hidden;background:var(--paper);border:2px solid #9b6a35;text-align:left;box-shadow:0 4px 0 #8c512729;color:var(--ink);transition:transform .15s,box-shadow .15s}.module-card:hover{transform:translateY(-4px);box-shadow:0 8px 15px #58301625}.module-card img{width:100%;aspect-ratio:2.45;object-fit:cover;object-position:center;border-bottom:2px solid #b38447}.module-card .module-copy{padding:16px 16px 14px;flex:1;display:flex;flex-direction:column;gap:9px}.module-card h3{font-size:1.04rem;color:var(--wine-dark);min-height:2.55em}.module-card p{font-size:.84rem;line-height:1.4;color:#5b5348}.module-card .module-bottom{display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid #dfc79d;margin-top:auto;padding-top:10px;font-size:.75rem;font-weight:700;color:var(--blue-dark)}.module-card .arrow{font-size:1.1rem;color:var(--wine)}.module-card:last-child{background:#eef2f1}.home-note{margin-top:22px;background:#e9eddf;border:1px solid #b9bf9d;border-left:5px solid var(--olive);padding:14px 18px;border-radius:7px;font-size:.88rem;line-height:1.55}
.routebar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:15px 0 18px}.routebar .subtle-btn{background:#fff8e9}.path-title{color:#6b5030;font-size:.86rem;font-weight:700}.ready{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.8fr);gap:0;border:2px solid var(--gold);border-radius:18px;background:var(--paper);overflow:hidden;box-shadow:var(--shadow);margin:18px auto 0;max-width:990px}.ready-copy{padding:32px}.ready h1{font-size:2rem;color:var(--wine-dark);margin-bottom:16px}.ready p{color:#5a503e}.ready-art{width:100%;height:100%;min-height:310px;object-fit:cover;object-position:left;background:#e9d7b7}.ready-illustration{display:flex;align-items:stretch;overflow:hidden;background:#f0e5ce}.ready-art{object-fit:contain;padding:20px}.ready .preview-words{font-weight:bold;color:var(--blue-dark);font-size:1.12rem;margin-top:12px}.session-choice{border:0;margin:24px 0 18px;padding:0}.session-choice legend{font-size:.9rem;font-weight:700;margin-bottom:10px}.segmented{display:flex;flex-wrap:wrap;gap:9px}.segmented label{display:inline-flex;align-items:center;gap:7px;min-height:48px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:white;cursor:pointer}.segmented label:has(input:checked){background:var(--blue);border:2px solid var(--blue-dark);padding:6px 10px}.segmented input{accent-color:var(--wine);width:18px;height:18px}.primary-btn{color:#fffaf0;background:var(--wine);border:2px solid var(--wine-dark);border-radius:10px;padding:11px 20px;box-shadow:0 3px 0 var(--wine-dark);font-weight:700;min-height:51px}.primary-btn:hover{background:#8c3322}.secondary-btn{border:2px solid var(--blue-dark);color:var(--blue-dark);background:#f4f8f8;min-height:51px;padding:11px 18px;font-weight:700}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.fineprint{font-size:.79rem;color:#6f624d;margin-top:14px}
.quiz-layout{display:grid;grid-template-columns:minmax(0,820px) minmax(215px,1fr);gap:22px;align-items:start}.quiz-panel{background:var(--paper);border:2px solid #936336;border-radius:18px;box-shadow:var(--shadow);overflow:hidden;min-width:0}.quiz-mosaic{height:7px;background:repeating-linear-gradient(90deg,#734021 0 7px,#e9c589 7px 15px,#bc7c3a 15px 20px,#edd8b0 20px 28px)}.quiz-top{padding:17px 24px 13px;display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line);background:#f4e7ce}.question-source{font-size:.82rem;font-weight:700;color:var(--wine)}.counter{font-size:.9rem;white-space:nowrap}.quiz-body{padding:25px}.question-prompt{font-size:1.16rem;line-height:1.4;margin-bottom:20px;color:var(--ink)}.sentence-panel{background:linear-gradient(120deg,#fffdf7,#f9efdb);border:2px solid #c99d57;border-radius:12px;padding:24px 20px;text-align:center;box-shadow:inset 0 0 0 3px #fffbf155}.sentence{font-size:1.65rem;line-height:1.5;overflow-wrap:break-word}.sentence b{font-weight:900;color:var(--wine);border-bottom:3px solid #af7843;padding-bottom:1px}.translation{font-size:1.03rem;line-height:1.5;color:#5c574a;margin-top:14px}.lexicon{font-size:1.05rem;color:var(--blue-dark);margin-top:10px}.answer-guide{font-size:.86rem;color:#655c4b;margin:18px 0 11px}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.choice{position:relative;display:flex;align-items:center;gap:12px;text-align:left;border:2px solid #8da1a7;background:var(--blue);color:#243840;border-radius:11px;padding:15px 15px;min-height:66px;line-height:1.35;font-size:1.03rem;overflow-wrap:anywhere}.choice .choice-letter{flex-shrink:0;width:27px;height:27px;display:grid;place-items:center;border:1px solid #b2bec1;border-radius:50%;font-size:.72rem;font-weight:bold;color:#4d5f66;background:#ffffffa0}.choice:hover:not(:disabled){background:#dce8eb;border-color:var(--blue-dark)}.choice:disabled{opacity:1}.choice.correct{background:#e6eedc;border-color:#476136;color:#2c4521}.choice.wrong{background:#f4e4dc;border-color:#9e3a2d;color:#742418}.choice .choice-symbol{margin-left:auto;font-size:1.1rem;font-weight:900}.feedback{border-radius:10px;padding:17px 18px;margin-top:21px;background:#e7eddc;border:1px solid #a7b991;border-left:5px solid #496638}.feedback.wrong{background:#f3e7df;border-color:#c99880;border-left-color:#9a3e27}.feedback h3{font-size:1.04rem;margin:0 0 7px}.feedback p{font-size:1rem;line-height:1.65}.feedback .right-answer{font-weight:800;color:var(--wine-dark);margin-bottom:7px;font-size:1.08rem}.quiz-next{margin-top:18px;display:flex;justify-content:flex-end}.quiz-side{display:flex;flex-direction:column;gap:15px}.side-art{border:2px solid #997148;border-radius:12px;overflow:hidden}.side-art img{width:100%;aspect-ratio:2.25;object-fit:cover}.score-box{border:1px solid var(--line);border-radius:12px;background:#fff9ed;padding:18px}.score-box h2{font-size:.95rem;margin-bottom:13px;color:var(--wine-dark)}.score-line{display:flex;align-items:baseline;gap:9px;margin:7px 0}.score-line strong{font-size:1.4rem}.score-line span{font-size:.85rem}.progress-track{height:9px;background:#e7d8be;border-radius:99px;overflow:hidden;margin:14px 0 8px}.progress-track span{display:block;width:0;background:var(--olive);height:100%;transition:width .15s}.side-note{font-size:.85rem;color:#675b47;margin-top:12px}.memo-button{width:100%;border:2px solid #9c7649;color:var(--wine-dark);background:#fbf0d9;padding:12px;font-weight:bold}.memo-button[aria-expanded=true]{background:#eaddc3}.memo{border:1px solid #bdaa87;background:#fffaf0;border-radius:12px;padding:22px;margin:20px 0;font-size:.95rem}.memo h2{font-size:1.25rem;color:var(--wine-dark);margin-bottom:15px}.memo h3{font-size:1.05rem;margin:20px 0 9px}.memo p{margin:10px 0}.memo .notice{background:#e9eff0;padding:12px;border-radius:8px;font-size:.86rem}.table-wrap{max-width:100%;overflow-x:auto;margin:12px 0;border:1px solid #d8c399;border-radius:8px}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid #e4d5b7;line-height:1.4}thead th{background:#ebe0c9;color:var(--wine-dark)}tbody th{font-weight:700;background:#f9f2e5}td{background:#fffdf7}caption{text-align:left;padding:12px;font-weight:700;background:#f5eddd;color:var(--wine-dark)}.noun-selector{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0}.noun-selector select{max-width:100%;padding:9px;border:1px solid #b99c6b;background:white;border-radius:7px}.reference-list p{border-bottom:1px solid #e1d0ad;padding-bottom:10px}.reference-list strong{color:var(--wine-dark)}
.result{max-width:870px;margin:20px auto;border:2px solid #ac7b40;background:#fffaf0;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.result-top{display:grid;grid-template-columns:1fr 280px;background:#f3e6cb;align-items:center;gap:20px;padding:25px}.result-top img{border:2px solid #98703d;border-radius:12px}.result h1{font-size:1.9rem;color:var(--wine-dark)}.result-content{padding:26px}.result-number{font-size:3rem;font-weight:900;color:var(--wine);line-height:1.2}.result-summary{margin:8px 0 24px;font-size:1.02rem}.result-content h2{font-size:1.15rem;color:var(--wine-dark);margin:24px 0 10px}.review-item{border:1px solid #d4c3a4;border-radius:10px;background:#fffdf7;margin-bottom:12px;padding:14px}.review-item summary{cursor:pointer;font-size:.95rem;font-weight:bold;line-height:1.4}.review-item .review-detail{padding-top:13px;font-size:.92rem;line-height:1.6}.review-detail b{color:var(--wine)}.review-detail .wrong-answer{color:#843b26}.result-detail{font-size:.9rem;color:#675b47}.empty-message{background:white;border:2px solid var(--line);padding:25px;border-radius:12px;margin:20px}
footer{border-top:2px solid #b18d55;background:#e6d6b8;padding:26px 30px;text-align:center;color:#58492e}footer .footer-name{font-size:1.02rem;font-weight:800;color:var(--wine-dark)}footer .footer-link{display:inline-block;font-size:1rem;font-weight:700;margin-top:4px}footer .footer-note{font-size:.77rem;margin-top:12px}footer details{max-width:850px;margin:14px auto 0;font-size:.82rem;text-align:left}footer summary{cursor:pointer;text-align:center;color:var(--wine-dark);font-weight:bold}footer details>div{padding:16px;background:#fff8eb;border:1px solid #c9b58e;border-radius:9px;margin-top:12px}footer ul{margin:14px 0;padding-left:1.2em}footer li{margin:7px 0}footer details p{line-height:1.65}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:min(92vw,760px);border:2px solid var(--gold);padding:14px 21px;border-radius:12px;background:#fffaf0;box-shadow:0 6px 25px #0003;z-index:40;font-size:.88rem}.link-dialog{border:2px solid var(--gold);border-radius:14px;max-width:min(94vw,670px);padding:25px;background:var(--paper);color:var(--ink)}.link-dialog::backdrop{background:#291b12a0}.link-dialog h2{color:var(--wine-dark);margin-bottom:16px}.link-dialog input{width:100%;padding:12px;margin:14px 0;border:1px solid #bfa87d;border-radius:8px;background:white}.link-dialog button{margin-top:12px}.exit-dialog .actions{margin-top:20px}
@media(min-width:1350px){.main-wrap{max-width:1250px}.topbar{max-width:1310px}.module-card h3{font-size:1.12rem}}
@media(max-width:1050px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-card h3{min-height:0;font-size:1.2rem}.module-card img{aspect-ratio:2.9}.module-card p{font-size:.9rem}.hero{grid-template-columns:1.2fr 1fr;padding:23px}.hero-art{transform:none}.quiz-layout{grid-template-columns:minmax(0,1fr) 210px}.quiz-body{padding:22px}.choices{grid-template-columns:1fr}.quiz-side .side-art{display:none}}
@media(max-width:740px){.topbar{padding:15px 18px;gap:10px}.top-tools{gap:7px}.top-tools>.subtle-btn{font-size:.8rem;padding:7px 10px}.size-label{display:none}.size-control button{min-width:36px}.brand{font-size:1.1rem}.main-wrap{padding:0 17px 24px}.hero{grid-template-columns:1fr;padding:23px;gap:21px;margin-top:0}.hero h1{font-size:2.2rem}.hero-art{max-height:200px;object-fit:cover}.hero p{font-size:.95rem}.module-grid{gap:14px}.module-card h3{font-size:1.08rem}.module-card .module-copy{padding:13px}.module-card p{font-size:.82rem}.module-card .module-bottom{font-size:.75rem}.section-heading{align-items:flex-start}.section-heading h2{font-size:1.17rem}.section-heading .quiet{max-width:120px;text-align:right;font-size:.75rem}.quiz-layout{grid-template-columns:1fr}.quiz-side{display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px}.quiz-side .score-box{order:1;padding:12px;grid-column:1/3}.quiz-side .memo-button{grid-column:1/3}.score-box h2{display:none}.score-box .score-line{display:inline-flex;margin:3px 13px 3px 0}.score-box .side-note{display:none}.score-box .progress-track{margin:7px 0}.quiz-panel{order:2}.quiz-side{order:1}.quiz-top{padding:12px 17px}.quiz-body{padding:22px 17px}.sentence{font-size:1.45rem}.translation{font-size:.95rem}.question-prompt{font-size:1.06rem}.choices{grid-template-columns:1fr}.choice{font-size:1.05rem;padding:15px}.ready{grid-template-columns:1fr}.ready-illustration{grid-row:1}.ready-art{min-height:0;max-height:160px;padding:0;width:100%;object-fit:cover;object-position:center}.ready-copy{padding:24px}.ready h1{font-size:1.75rem}.routebar{align-items:flex-start;gap:8px}.path-title{font-size:.76rem;text-align:right;margin-top:12px}.result-top{grid-template-columns:1fr;padding:24px}.result-top img{max-height:160px;width:100%;object-fit:cover}.result-content{padding:22px}.memo{padding:17px}th,td{padding:8px}footer{padding:24px 18px}.top-tools .share-text{display:none}.top-tools .share-btn{min-width:42px}.actions>*{flex-grow:1}.quiz-next .primary-btn{width:100%}}
@media(max-width:410px){.module-grid{grid-template-columns:1fr}.module-card img{aspect-ratio:3}.module-card h3{font-size:1.18rem}.module-card p{font-size:.9rem}.hero h1{font-size:1.92rem}.topbar{flex-wrap:wrap}.top-tools{margin-left:auto}.brand small{display:none}.quiz-top{flex-wrap:wrap}.sentence{font-size:1.4rem}.result-top img{display:none}.main-wrap{padding-left:12px;padding-right:12px}.session-choice label{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.top-tools,.routebar,footer,.actions,.quiz-next,.quiz-side,.toast{display:none!important}body{background:white}.main-wrap{padding:0}.hero,.quiz-panel,.memo{box-shadow:none}button{break-inside:avoid}}

/* Keyboard focus and large-text review remain visible at narrow widths. */
.feedback{scroll-margin-top:18px;overflow-wrap:anywhere}.feedback:focus{outline:3px solid var(--blue-dark);outline-offset:3px}
.memo{scroll-margin-top:18px}.memo-actions{margin-top:18px;display:flex;justify-content:flex-end}
.review-question{display:block;font-weight:600;font-size:.9em;margin-bottom:6px}
.review-sentence{display:block;font-weight:500}.review-sentence b{color:var(--wine);font-weight:900;border-bottom:2px solid var(--gold)}
.table-wrap:focus-visible{outline:3px solid var(--blue-dark);outline-offset:3px}
@media(max-width:740px){.memo-actions button{width:100%}}

.analyzer-nav{text-decoration:none;font-size:.82rem;text-align:center;display:inline-flex;align-items:center}.translation-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f5f9fc;border:2px solid #93afc2;border-radius:12px;padding:20px 24px;margin:20px 0}.translation-entry h2{font-size:1.22rem;color:#194d72}.translation-entry p{font-size:.88rem;margin-top:7px}.translation-entry a{flex-shrink:0;text-decoration:none;background:#194d72;color:white;border-radius:7px;padding:12px 18px;font-weight:bold}.top-tools{flex-wrap:wrap;justify-content:flex-end}@media(max-width:740px){.translation-entry{align-items:stretch;flex-direction:column;padding:20px}.translation-entry a{text-align:center}.topbar{flex-wrap:wrap}.analyzer-nav{font-size:.76rem}}

.mystery-entry{background:#fffaf2;border-color:#caaf80}.mystery-entry h2{color:#713e27}.mystery-entry a{background:#713e27}
