:root{color-scheme:light;--ink:#142724;--muted:#52645f;--green:#176b5b;--green-dark:#0e5749;--mint:#e9f5f1;--line:#d7e3de;--paper:#fbfcfa;--focus:#175cd3;--orange:#b86930}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;line-height:1.65}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{position:absolute;top:-5rem;left:1rem;z-index:20;background:#fff;padding:.6rem 1rem}.skip-link:focus{top:1rem}
.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{width:min(1180px,calc(100% - 40px));min-height:78px;margin:auto;display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:var(--green);color:#fff;width:42px;height:42px;border-radius:12px;font-weight:800}.brand strong,.brand small{display:block;line-height:1.2}.brand strong{letter-spacing:.07em}.brand small{font-size:10px;color:var(--muted)}nav{display:flex;gap:26px;margin-left:auto}nav a{text-decoration:none;font-size:13px;font-weight:700;color:var(--muted)}nav a:hover{text-decoration:underline}.prototype-tag{border:1px solid var(--line);border-radius:999px;padding:5px 10px;color:var(--muted);font-size:10px;letter-spacing:.1em;font-weight:800;white-space:nowrap}
.hero{background:radial-gradient(circle at 72% 40%,#d5ebe2 0,#eaf5ef 27%,transparent 52%),linear-gradient(120deg,#f7fbf7,#eff7f1);border-bottom:1px solid var(--line)}.hero-inner,.section-inner{width:min(1140px,calc(100% - 40px));margin:auto}.hero-inner{display:grid;grid-template-columns:1.13fr .87fr;gap:65px;align-items:center;padding:84px 0 92px}.eyebrow{margin:0 0 16px;color:var(--green);font-size:12px;font-weight:900;letter-spacing:.16em}.hero h1{font-size:clamp(40px,5.4vw,68px);line-height:1.23;letter-spacing:-.065em;margin:0}.hero h1 em{color:var(--green);font-style:normal;border-bottom:6px solid #b6ddcf}.hero-lead{max-width:600px;font-size:17px;color:#3e5550;margin:25px 0}.hero-actions{display:flex;align-items:center;gap:17px;flex-wrap:wrap}.hero-actions>span{font-size:13px;color:var(--muted)}.primary-link{display:inline-flex;min-height:52px;align-items:center;gap:16px;background:var(--green);color:#fff;padding:12px 21px;border-radius:9px;text-decoration:none;font-weight:800;box-shadow:0 9px 22px #176b5b27}.primary-link:hover{background:var(--green-dark)}.sample-note{font-size:12px;color:var(--muted);margin:24px 0 0}.journey-card{background:#fff;border:1px solid #d7e8df;border-radius:22px;padding:30px;box-shadow:0 24px 48px #1a4b3b1a;transform:rotate(1deg)}.journey-label{font-size:11px;letter-spacing:.18em;font-weight:900;color:var(--green)}.journey-card ol{padding:0;margin:22px 0;list-style:none}.journey-card li{display:flex;gap:17px;align-items:center;padding:17px 0;border-top:1px solid var(--line)}.journey-card li>span{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:var(--mint);color:var(--green);font-weight:900;font-size:12px}.journey-card strong,.journey-card small{display:block}.journey-card small{color:var(--muted)}.journey-card p{background:#f3f8f5;margin:0;padding:14px 16px;border-radius:9px;color:var(--green-dark);font-size:13px;font-weight:700}
.section{padding:84px 0;scroll-margin-top:12px}.tones-section{background:#fff}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.section h2{font-size:clamp(27px,3.2vw,40px);letter-spacing:-.05em;line-height:1.3;margin:0 0 12px}.section-heading p:last-child,.lesson-copy>p:not(.eyebrow),.builder-lead{max-width:650px;color:var(--muted);margin:0}.section-side{font-size:12px;color:var(--green);font-weight:800;white-space:nowrap}.tone-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.tone-card{border:2px solid #dbe9e2;background:#f8fbf8;border-radius:17px;min-height:258px;padding:18px;display:flex;flex-direction:column;align-items:stretch;text-align:left;transition:transform .16s,border-color .16s,box-shadow .16s}.tone-card:hover,.tone-card.is-playing{border-color:var(--green);transform:translateY(-4px);box-shadow:0 10px 22px #176b5b1a}.tone-card[data-tone="2"]{background:#f8faf3}.tone-card[data-tone="3"]{background:#fbf8f3}.tone-card[data-tone="4"]{background:#fcf7f4}.tone-card.neutral{background:#f6f7f8}.tone-top{display:flex;justify-content:space-between;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.tone-top span:first-child{color:var(--orange)}.tone-symbol{display:block;text-align:center;font-family:Georgia,serif;color:var(--ink);font-size:72px;line-height:1.13;font-weight:700;margin:13px 0 3px}.tone-card svg{width:100%;height:63px;overflow:visible}.tone-card svg path{fill:none;stroke:var(--green);stroke-width:5;stroke-linecap:round}.tone-bottom{margin-top:auto;display:flex;align-items:center;gap:9px}.tone-bottom strong{font-size:21px}.tone-bottom>span:nth-child(2){font-size:17px;color:var(--muted)}.play-icon{margin-left:auto;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#dcefe6;color:var(--green);font-size:10px}.audio-note{margin-top:22px;display:flex;align-items:center;gap:12px;padding:13px 16px;background:#edf6f2;border:1px solid #d6e9df;border-radius:10px;color:var(--green-dark)}.audio-note>span{font-size:24px}.audio-note p{margin:0;font-size:12px}.learning-note{font-size:12px;color:var(--muted);margin:13px 0 0}
.listening-section{background:#f3f8f5}.listening-layout,.builder-layout{display:grid;grid-template-columns:.75fr 1fr;gap:80px;align-items:start}.lesson-copy,.builder-layout>div:first-child{padding-top:28px}.lesson-tip{margin-top:34px;border-left:4px solid var(--green);padding:6px 0 6px 18px}.lesson-tip p{margin:5px 0 0;color:var(--muted);font-size:14px}.exercise-card,.builder-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 14px 32px #193e3210}.exercise-top,.builder-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:800}.pill{display:inline-block;border-radius:999px;background:var(--mint);padding:6px 11px;color:var(--green);font-size:11px;font-weight:900}.stage-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px;padding:5px;background:#f3f5f3;border-radius:10px}.stage-tabs button{border:0;border-radius:7px;background:transparent;color:var(--muted);padding:10px 5px;font-size:13px;font-weight:800}.stage-tabs button.active{background:#fff;color:var(--green);box-shadow:0 2px 8px #15272116}.listen-prompt{text-align:center;border:1px dashed #b7d3c6;border-radius:14px;margin-top:19px;padding:20px;background:#f9fcf9}.headphones{display:grid;place-items:center;margin:auto;width:43px;height:43px;border-radius:50%;background:#def1e7;color:var(--green);font-size:24px}.listen-prompt p{font-weight:800;margin:12px 0}.listen-play,.next-button,#build-play{border:0;background:var(--green);color:#fff;padding:11px 20px;border-radius:9px;font-weight:800;min-height:46px}.listen-play:hover,.next-button:hover,#build-play:hover{background:var(--green-dark)}.listen-prompt small{display:block;color:var(--muted);margin-top:7px}.answer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:19px}.answer-grid.hard{grid-template-columns:repeat(5,1fr)}.answer-grid button{min-height:60px;border:1px solid #c8dad0;border-radius:10px;background:#fff;font-size:23px;font-weight:800;color:var(--ink)}.answer-grid button:hover:not(:disabled){background:var(--mint)}.answer-grid button.correct{border-color:var(--green);background:#e5f4ea}.answer-grid button.incorrect{border-color:#bd7960;background:#fbefeb}.answer-grid button:disabled{cursor:default}.feedback{margin-top:17px;min-height:42px;font-size:14px;color:var(--muted)}.feedback.success{color:var(--green-dark);font-weight:800}.feedback.retry{color:#93432c}.next-button{width:100%;margin-top:8px}.exercise-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:16px;margin-top:18px;color:var(--muted);font-size:12px}.exercise-footer button{border:0;background:transparent;color:var(--green);text-decoration:underline;font-size:12px;font-weight:800}
.builder-section{background:#fff}.builder-help{margin-top:35px;padding:20px;background:#eff7f2;border-radius:13px}.builder-help strong,.builder-help span{display:block}.builder-help span{margin-top:10px;font-size:20px}.builder-help b{display:inline-block;background:#fff;border:1px solid #d4e4d9;border-radius:7px;padding:2px 8px}.builder-help p{color:var(--muted);font-size:12px;margin:12px 0 0}.part-row{padding:18px 0;border-bottom:1px solid var(--line)}.part-row h3{font-size:14px;margin:0 0 10px}.part-row h3 small{font-weight:500;color:var(--muted);margin-left:8px}.part-options{display:flex;flex-wrap:wrap;gap:8px}.part-options button{min-width:55px;min-height:48px;padding:7px 13px;border:1px solid #c6d9ce;background:#fff;border-radius:9px;font-size:18px;font-weight:800}.part-options button:hover{background:var(--mint)}.part-options button.selected{background:var(--green);border-color:var(--green);color:#fff}.build-result{margin-top:21px;background:#f2f8f4;border-radius:12px;padding:20px}.build-result>span{font-size:11px;color:var(--muted);font-weight:800}.build-result strong{display:block;font-size:30px;line-height:1.4}.build-result p{font-size:13px;margin:4px 0 13px;color:var(--muted)}.build-result p.success{color:var(--green-dark);font-weight:800}.build-result p.retry{color:#93432c}.builder-examples{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:17px;font-size:11px;color:var(--muted)}.builder-examples button{border:1px solid var(--line);background:#fff;color:var(--green);border-radius:999px;padding:5px 9px;font-size:11px}.site-footer{width:min(1140px,calc(100% - 40px));margin:auto;display:flex;justify-content:space-between;gap:20px;padding:30px 0;color:var(--muted);font-size:12px}.site-footer strong{color:var(--green);margin-right:12px}
@media(max-width:1050px){.tone-grid{grid-template-columns:repeat(3,1fr)}.listening-layout,.builder-layout{gap:35px}}@media(max-width:740px){.header-inner{min-height:68px}.site-header nav{display:none}.prototype-tag{margin-left:auto}.hero-inner,.listening-layout,.builder-layout{grid-template-columns:1fr;gap:30px}.hero-inner{padding:58px 0}.journey-card{transform:none}.section{padding:62px 0}.section-heading{display:block}.section-side{display:none}.tone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tone-card{min-height:226px}.tone-symbol{font-size:59px}.lesson-copy,.builder-layout>div:first-child{padding-top:0}}@media(max-width:450px){.hero-inner,.section-inner,.header-inner,.site-footer{width:calc(100% - 28px)}.hero h1{font-size:39px}.tone-grid{gap:9px}.tone-card{padding:12px;min-height:207px}.tone-top{font-size:9px}.tone-symbol{font-size:54px;margin:10px 0 0}.tone-card svg{height:50px}.tone-bottom strong{font-size:18px}.tone-bottom>span:nth-child(2){font-size:14px}.exercise-card,.builder-card{padding:18px}.answer-grid.hard{grid-template-columns:repeat(3,1fr)}.site-footer{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tone-card{transition:none}.tone-card:hover,.tone-card.is-playing{transform:none}}
.answer-grid button:disabled{opacity:.55}
.answer-grid button.correct:disabled,.answer-grid button.incorrect:disabled{opacity:1}

.secondary-link{display:inline-flex;min-height:52px;align-items:center;border:1px solid var(--green);border-radius:9px;padding:12px 17px;color:var(--green);text-decoration:none;font-size:13px;font-weight:800;background:#fff9}.secondary-link:hover{background:var(--mint)}

/* Draw the third-tone mark as a centered vector so font fallback cannot shift it. */
.tone-card svg.tone-symbol-third{width:90px;height:82px;align-self:center;flex:none;overflow:visible}
.tone-card svg.tone-symbol-third path{stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.tone-card svg.tone-symbol-third text{fill:var(--ink);font-family:Georgia,serif;font-size:72px;font-weight:700;text-anchor:middle}
@media(max-width:740px){.tone-card svg.tone-symbol-third{width:74px;height:68px}}
@media(max-width:450px){.tone-card svg.tone-symbol-third{width:66px;height:61px}}
