:root{color:#173b32;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#e8eee8;font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button{font-family:inherit}a{color:inherit}#root{min-height:100vh}:focus-visible{outline-offset:3px;outline:3px solid #e9b74e}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.table-scene{color:#f8fbf7;background:#0e5547;border-radius:22px;padding:24px 24px 18px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff24}.table-oval{background:radial-gradient(circle at 50% 60%,#1b6657 0,#155a4d 51%,#104e42 100%);border:3px solid #88b9a7;border-radius:54%/42%;max-width:760px;height:244px;margin:0 auto;position:relative;box-shadow:inset 0 0 0 9px #ffffff0d,0 12px 25px #092f2840}.opponent-seat{justify-items:center;gap:7px;display:grid;position:absolute;top:17px;left:50%;transform:translate(-50%)}.opponent-name{color:#d7e9dd;letter-spacing:.15em;font-size:12px;font-weight:700}.opponent-tiles{gap:3px;display:flex}.opponent-tiles i{background:linear-gradient(145deg,#d7e7d9,#b8d2c3);border:2px solid #aac7bb;border-radius:4px;width:22px;height:30px;display:block;box-shadow:0 3px #86a798}.table-center{white-space:nowrap;color:#d9ece3;justify-items:center;gap:2px;font-size:14px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-35%)}.table-center strong{color:#fff;font-size:clamp(19px,3vw,27px)}.table-center-mark{color:#f2cf81;border:1px solid #badbca;border-radius:50%;place-items:center;width:40px;height:40px;margin-bottom:5px;font-family:serif;font-size:24px;display:grid}.table-wall{color:#d8eee0;border:1px solid #9ec4b3;border-radius:5px;padding:4px 8px;font-size:12px;position:absolute;top:50%;right:9%}.player-label{color:#d9eade;letter-spacing:.06em;max-width:760px;margin:-2px auto 11px;padding-left:8px;font-size:13px;font-weight:700}.player-label span{color:#9ec9b5;font-size:11px;font-weight:500}.hand-scroll{scrollbar-color:#8db8a7 transparent;max-width:100%;padding:8px 0 6px;overflow:auto visible}.player-hand{justify-content:center;align-items:flex-end;gap:clamp(2px,.45vw,5px);width:max-content;min-width:100%;min-height:58px;display:flex}.scene-tile{will-change:transform;flex:none;position:relative}.scene-tile.motion-draw,.scene-tile.motion-discard,.scene-tile.motion-highlight{z-index:1}.scene-tile.motion-draw .mahjong-tile,.scene-tile.motion-discard .mahjong-tile,.scene-tile.motion-highlight .mahjong-tile{outline-offset:1px;outline:3px solid #e9b74e}.scene-tile.motion-draw{animation:2.1s ease-out both tile-draw}.scene-tile.motion-discard{animation:2.1s ease-in both tile-discard}.scene-tile.motion-highlight{animation:2.1s ease-in-out both tile-highlight}.scene-tile.paused{animation-play-state:paused}.scene-tile.instant{animation:none;transform:none}.scene-tile.motion-discard.instant{opacity:.25}@keyframes tile-draw{0%{opacity:.3;transform:translate(55px,-70px)scale(.8)}55%{opacity:1;transform:translateY(-16px)scale(1.12)}to{transform:translateY(0)scale(1)}}@keyframes tile-discard{0%,30%{opacity:1;transform:translateY(0)}60%{opacity:1;transform:translateY(-14px)}to{opacity:.2;transform:translateY(-70px)scale(.75)}}@keyframes tile-highlight{0%,to{transform:translateY(0)}35%,75%{transform:translateY(-14px)}}.scene-caption{text-align:center;color:#d6e9df;margin-top:10px;font-size:12px}.caption-dot{background:#e9b74e;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.mahjong-tile{color:#ad4038;background:#fffef5;border:1px solid #e9e5d6;border-bottom:6px solid #b9cec2;border-radius:6px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:clamp(20px,5.6vw,43px);height:clamp(34px,8vw,61px);line-height:1;display:flex;position:relative;box-shadow:0 3px 4px #061c182e}.mahjong-tile.is-selected{outline:3px solid #e9b74e}.tile-numeral{font-family:serif;font-size:clamp(13px,3vw,23px);font-weight:900}.tile-suit{margin-top:1px;font-family:serif;font-size:clamp(10px,2vw,15px);font-weight:800}.suit-p{color:#b4413e}.tile-pips{grid-template-columns:repeat(3,1fr);place-items:center;gap:2px;width:74%;max-width:28px;display:grid}.tile-pips i{background:#d96855;border:1px solid #a43736;border-radius:50%;width:clamp(3px,.8vw,6px);height:clamp(3px,.8vw,6px);display:block}.tile-pips i:nth-child(3n+2){background:#216957;border-color:#216957}.tile-pips[data-count="1"] i{width:15px;height:15px}.tile-pips[data-count="2"],.tile-pips[data-count="3"]{grid-template-columns:1fr}.suit-s{color:#236753}.tile-sticks{align-items:center;gap:1px;height:24px;display:flex}.tile-sticks i{background:#258070;border-radius:2px;width:3px;height:15px;display:block;transform:rotate(13deg)}.tile-sticks i:nth-child(2n){background:#aa5147;transform:rotate(-13deg)}.tile-small-number{font-size:10px;font-weight:800}.tile-honor{font-family:serif;font-size:clamp(15px,3.5vw,28px);font-weight:900}.suit-E,.suit-S,.suit-W,.suit-N,.suit-F{color:#246b5c}.suit-P{color:#a3b5ab}.suit-C{color:#bb433b}.tile-button{appearance:none;cursor:pointer;background:0 0;border:0;padding:0}.tile-button:focus-visible{outline-offset:4px;border-radius:5px;outline:3px solid #e9b74e}.tile-button:disabled{cursor:not-allowed}.animation-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.animation-controls button{color:#fff;cursor:pointer;font:inherit;background:#ffffff18;border:1px solid #fff6;border-radius:8px;padding:7px 12px;font-size:12px}.animation-controls button:hover{background:#ffffff2b}.animation-controls button:focus-visible{outline-offset:2px;outline:3px solid #e9b74e}.animation-controls span{color:#f0ca72;margin-left:5px}@media (width<=600px){.table-scene{border-radius:17px;padding:18px 10px 14px}.table-oval{height:190px}.opponent-tiles i{width:16px;height:24px}.table-wall{font-size:10px;top:58%;right:6%}.player-label{margin-top:3px}.player-hand{min-height:44px}.scene-caption{font-size:11px}.player-hand{gap:2px}.player-hand .mahjong-tile{border-bottom-width:4px;width:18px;height:37px}.player-hand .tile-numeral,.player-hand .tile-honor{font-size:14px}.player-hand .tile-suit{font-size:9px}.player-hand .tile-sticks i{width:2px;height:11px}.player-hand .tile-small-number{font-size:8px}.player-hand .tile-pips{gap:1px}}@media (width<=360px){.mahjong-tile{border-bottom-width:4px;width:19px;height:35px}.player-hand .mahjong-tile{width:16px}.player-hand{gap:1px}.table-oval{height:168px}.opponent-tiles i{width:14px;height:20px}}@media (prefers-reduced-motion:reduce){.scene-tile{animation:none!important;transform:none!important}.scene-tile.motion-discard{opacity:.25}}.home-page{background:#e8eee8;min-height:100vh;padding:32px 22px 60px}.home-shell{background:#f9faf6;border-radius:22px;max-width:1110px;margin:auto;overflow:hidden;box-shadow:0 24px 65px #1645341b}.home-nav{color:#fff;letter-spacing:-.03em;background:#0d4c40;align-items:center;gap:11px;height:72px;padding:0 36px;font-size:20px;font-weight:800;display:flex}.brand-mark{color:#0d4c40;background:#fffdf0;border-radius:5px;place-items:center;width:35px;height:35px;font-family:serif;font-size:21px;display:grid}.nav-note{letter-spacing:.1em;color:#b9d9ca;margin-left:auto;font-size:12px;font-weight:500}.home-hero{color:#fff;background:#155a4b;grid-template-columns:1.08fr .92fr;min-height:430px;display:grid}.hero-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:58px 48px 50px;display:flex}.eyebrow{color:#e4c481;letter-spacing:.09em;align-items:center;gap:9px;font-size:12px;font-weight:700;display:flex}.eyebrow span{background:#e4c481;width:15px;height:1px}.hero-copy h1{letter-spacing:-.075em;margin:22px 0;font-size:clamp(35px,4.6vw,55px);line-height:1.25}.hero-copy h1 em{color:#f0c766;font-style:normal}.hero-copy p{color:#d4e8dd;max-width:430px;margin:0 0 25px;font-size:15px;line-height:1.9}.primary-cta{color:#204234;cursor:pointer;background:#e9b74e;border:0;border-radius:10px;align-items:center;gap:28px;padding:15px 20px 15px 23px;font-size:15px;font-weight:800;display:flex;box-shadow:0 5px #aa7c31}.primary-cta:hover{background:#f3c566;transform:translateY(-2px)}.primary-cta:active{transform:translateY(3px);box-shadow:0 2px #aa7c31}.primary-cta:focus-visible{outline-offset:4px;outline:3px solid #fff}.primary-cta span{font-size:20px}.hero-microcopy{color:#bbd9c8;letter-spacing:.05em;margin-top:20px;font-size:11px}.hero-scene{background:radial-gradient(circle,#185c4d 0,#0e4c40 68%);flex-direction:column;justify-content:center;align-items:center;gap:30px;min-height:310px;display:flex;position:relative;overflow:hidden}.hero-scene-orbit{border:1px solid #79ad942b;border-radius:50%;width:430px;height:430px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit-two{border-color:#79ad9450;width:305px;height:305px}.hero-scene-label{z-index:1;letter-spacing:.22em;color:#9ec5af;font-size:11px;font-weight:700}.hero-hand{z-index:1;align-items:flex-end;gap:8px;display:flex}.hero-hand .mahjong-tile{border-bottom-width:8px;border-radius:7px;width:60px;height:82px;box-shadow:0 13px 23px #071f1a56}.hero-hand .tile-numeral,.hero-hand .tile-honor{font-size:37px}.hero-hand .tile-suit{font-size:19px}.hero-hand .tile-pips{max-width:40px}.hero-hand .tile-pips i{width:16px;height:16px}.hero-hand .tile-sticks i{width:5px;height:26px}.hero-hand .tile-small-number{font-size:16px}.hero-hand .mahjong-tile:last-child{outline-offset:2px;outline:3px solid #e9b74e;transform:translateY(-17px)}.hero-scene-annotation{z-index:1;color:#d5e5d9;font-size:13px;transform:rotate(-4deg)}.hero-scene-annotation span{color:#e9b74e;margin-left:8px;font-size:28px;display:inline-block}.home-content{padding:43px 48px 46px}.section-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.section-overline{color:#8b9d8e;letter-spacing:.18em;margin-bottom:7px;font-size:11px;font-weight:800;display:block}.section-heading h2{letter-spacing:-.05em;margin:0;font-size:29px}.course-progress{color:#336855;white-space:nowrap;background:#e5f0e8;border-radius:30px;padding:9px 14px;font-size:12px;font-weight:800}.path-intro{color:#597368;margin:11px 0 22px;font-size:14px;line-height:1.6}.lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.lesson-card{text-align:left;cursor:pointer;color:#173b32;background:#fff;border:1px solid #d9e5dc;border-radius:13px;flex-direction:column;align-items:flex-start;min-height:178px;padding:19px 20px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;box-shadow:0 4px 15px #16453409}.lesson-card:hover{border-color:#8eaf9c;transform:translateY(-3px);box-shadow:0 9px 22px #16453418}.lesson-card:focus-visible{outline-offset:3px;outline:3px solid #1b8f7c}.lesson-card.first-card:not(.completed){background:#fffdf4;border:2px solid #d5ab58;padding:18px 19px}.lesson-card.completed{background:#f2f8f1;border-color:#b2d0bd}.lesson-card-top{justify-content:space-between;align-items:center;width:100%;margin-bottom:17px;display:flex}.lesson-number{color:#13624f;background:#e3efe8;border-radius:50%;place-items:center;width:33px;height:33px;font-size:13px;font-weight:900;display:grid}.first-card .lesson-number{color:#24402f;background:#e9b74e}.lesson-card-arrow{color:#93a89c;font-size:19px}.lesson-card strong{letter-spacing:-.035em;font-size:16px}.lesson-summary{color:#6a7d72;margin:6px 0 14px;font-size:12px;line-height:1.6}.lesson-status{color:#53816a;border-top:1px solid #e6eee8;width:100%;margin-top:auto;padding-top:10px;font-size:11px;font-weight:800}.completed .lesson-status{color:#187354}.home-footer-note{color:#516c5b;background:#e9f1e9;border-radius:10px;align-items:flex-start;gap:12px;margin-top:27px;padding:14px 17px;font-size:12px;line-height:1.7;display:flex}.home-footer-note p{margin:0}.note-icon{border:1px solid #81a995;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;font-family:serif;font-style:italic;display:grid}.home-footer{color:#688070;padding:0 48px 35px;font-size:12px;line-height:1.7}.home-footer a{color:#17654f;text-underline-offset:3px;text-decoration:underline}@media (width<=820px){.home-hero{grid-template-columns:1fr}.hero-copy{padding:40px}.hero-scene{min-height:230px}.home-content{padding:35px 30px}.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-footer{padding:0 30px 30px}}@media (width<=520px){.home-page{background:#f9faf6;padding:0}.home-shell{box-shadow:none;border-radius:0}.home-nav{height:62px;padding:0 20px;font-size:17px}.nav-note{font-size:10px}.hero-copy{padding:38px 25px 40px}.hero-copy h1{margin:17px 0;font-size:41px}.hero-copy p{font-size:14px}.hero-scene{gap:20px;min-height:185px}.hero-hand .mahjong-tile{width:46px;height:64px}.hero-hand .tile-numeral,.hero-hand .tile-honor{font-size:29px}.home-content{padding:32px 20px}.section-heading h2{font-size:25px}.course-progress{padding:8px 10px;font-size:10px}.lesson-grid{grid-template-columns:1fr;gap:10px}.lesson-card{min-height:127px;padding:15px 17px}.lesson-card.first-card:not(.completed){padding:14px 16px}.lesson-card-top,.lesson-summary{margin-bottom:8px}.home-footer{padding:0 20px 30px}}@media (prefers-reduced-motion:reduce){.lesson-card,.primary-cta{transition:none}.lesson-card:hover,.primary-cta:hover,.primary-cta:active{transform:none}}.lesson-page{background:#e8eee8;min-height:100vh;padding:28px 20px 60px}.lesson-shell{background:#f9faf6;border-radius:20px;max-width:1060px;margin:auto;overflow:hidden;box-shadow:0 22px 65px #1645341a}.lesson-nav{color:#fff;background:#0d4c40;justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:12px 35px;display:flex}.back-link{color:#e0eee5;cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:13px}.back-link:hover{text-underline-offset:4px;text-decoration:underline}.back-link:focus-visible{outline-color:#f5cf75}.lesson-brand{white-space:nowrap;font-size:16px;font-weight:800}.mini-brand{color:#0d4c40;background:#fffdf0;border-radius:4px;place-items:center;width:25px;height:25px;margin-right:4px;font-family:serif;display:inline-grid}.lesson-nav-count{color:#c2ddcf;letter-spacing:.12em;font-size:12px}.lesson-body{padding:38px 45px 47px}.lesson-topline{color:#70917d;letter-spacing:.08em;align-items:center;gap:8px;font-size:11px;font-weight:800;display:flex}.topline-step{color:#177053}.topline-dot{background:#8aa797;border-radius:50%;width:3px;height:3px}.lesson-heading-row{justify-content:space-between;align-items:end;gap:20px;display:flex}.lesson-heading-row h1{letter-spacing:-.06em;margin:10px 0 8px;font-size:clamp(27px,3.8vw,39px);line-height:1.25}.lesson-heading-row p{color:#647b6b;max-width:690px;margin:0;font-size:14px;line-height:1.8}.lesson-step-count{white-space:nowrap;color:#6b8572;padding-bottom:4px;font-size:13px}.lesson-step-count strong{color:#16654f;font-size:27px}.lesson-progress-track{gap:5px;margin:23px 0 27px;display:flex}.lesson-progress-track span{background:#d9e7dc;border-radius:5px;flex:1;height:5px}.lesson-progress-track span.active{background:#d9ae55}.practice-panel{background:#0e5547;border-radius:18px;padding:24px;box-shadow:0 15px 34px #194d3a24}.practice-panel-top{color:#fff;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px;display:flex}.practice-panel-top h2{letter-spacing:-.04em;margin:4px 0 0;font-size:19px}.panel-kicker{color:#f1cc7d;letter-spacing:.09em;font-size:11px;font-weight:800}.practice-panel .table-scene{box-shadow:none;background:#155a4d;border:1px solid #ffffff38;border-radius:13px}.motion-footer{color:#d8e9de;justify-content:space-between;align-items:center;gap:15px;padding:15px 2px 0;font-size:12px;line-height:1.6;display:flex}.motion-footer button{appearance:none;color:#fff;cursor:pointer;font:inherit;background:#ffffff15;border:1px solid #99bfae;border-radius:7px;flex:none;padding:7px 10px;font-weight:700}.motion-footer button:hover{background:#ffffff28}.question-panel{background:#fff;border:1px solid #dce8dd;border-radius:16px;margin-top:24px;padding:31px 33px;box-shadow:0 8px 20px #234c350b}.question-overline{color:#82a08a;letter-spacing:.13em;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;display:flex}.question-overline span:first-child{color:#17715c;align-items:center;gap:8px;display:inline-flex}.question-overline span:first-child:before{content:"";background:#d8ad55;width:16px;height:2px}.question-panel h2{letter-spacing:-.045em;margin:17px 0 7px;font-size:clamp(19px,2.5vw,25px);line-height:1.45}.question-panel h2:focus{outline:none}.question-hint{color:#748778;margin:0 0 21px;font-size:13px}.answer-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.answer-choices.many-choices{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.answer-choice{text-align:left;color:#254638;cursor:pointer;background:#fbfdf9;border:1px solid #d5e2d6;border-radius:10px;align-items:center;gap:13px;min-height:74px;padding:10px 14px;transition:border-color .18s,background .18s,transform .18s;display:flex}.answer-choice:not(:disabled):hover{background:#f4fbf4;border-color:#78ad8e;transform:translateY(-2px)}.answer-choice:disabled{cursor:default}.answer-choice:disabled:not(.right):not(.wrong){opacity:.65}.answer-choice.right{background:#effaf1;border:2px solid #249462}.answer-choice.wrong{background:#fff3ed;border:2px solid #c7775c}.answer-choice .mahjong-tile{border-bottom-width:4px;width:34px;height:47px}.answer-choice-text{flex-direction:column;gap:4px;min-width:0;font-size:14px;font-weight:750;line-height:1.45;display:flex}.answer-choice-text small{color:#85a090;letter-spacing:.08em;font-size:10px}.choice-indicator{color:#8ca994;margin-left:auto;font-size:17px}.right .choice-indicator{color:#23865d}.many-choices .answer-choice{flex-direction:column;justify-content:center;gap:5px;min-height:99px;padding:8px 3px}.many-choices .answer-choice-text{text-align:center;font-size:11px}.many-choices .choice-indicator,.many-choices .answer-choice-text small{display:none}.feedback{color:#22543c;background:#ecf7ed;border:1px solid #b9dfbd;border-radius:10px;gap:13px;margin-top:20px;padding:17px 18px;display:flex}.feedback.wrong{color:#734c37;background:#fff6ed;border-color:#eac7a7}.feedback-icon{color:#fff;background:#237a50;border-radius:50%;flex:none;place-items:center;width:25px;height:25px;font-weight:900;display:grid}.wrong .feedback-icon{background:#b8764e}.feedback-copy strong{font-size:15px}.feedback-copy p{margin:5px 0 0;font-size:13px;line-height:1.7}.question-actions{justify-content:flex-end;display:flex}.action-button,.completion-panel button{color:#244331;cursor:pointer;background:#e9b74e;border:0;border-radius:9px;margin-top:17px;padding:12px 18px;font-size:14px;font-weight:800;box-shadow:0 4px #b58c3a}.action-button span,.completion-panel button span{margin-left:18px}.action-button:hover,.completion-panel button:hover{background:#f3c96b}.action-button.secondary{color:#fff;background:#195f4d;box-shadow:0 4px #0a3f32}.action-button.secondary:hover{background:#24745d}.completion-panel{background:#e2f0e4;border:1px solid #b3d3bd;border-radius:14px;align-items:center;gap:17px;margin-top:22px;padding:22px 25px;display:flex}.completion-badge{color:#fff;background:#27885e;border-radius:50%;flex:none;place-items:center;width:53px;height:53px;font-size:28px;display:grid}.completion-panel div:nth-child(2){flex:1}.completion-panel div:nth-child(2)>span{color:#458361;letter-spacing:.14em;font-size:10px;font-weight:900}.completion-panel h2{letter-spacing:-.05em;margin:3px 0;font-size:22px}.completion-panel p{color:#5a7965;margin:0;font-size:12px;line-height:1.5}.completion-panel button{flex:none;margin:0}.lesson-footer{color:#788e7c;padding:0 45px 38px;font-size:11px;line-height:1.6}@media (width<=800px){.answer-choices.many-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.lesson-body{padding:30px 28px 38px}.lesson-footer{padding:0 28px 30px}}@media (width<=600px){.lesson-page{background:#f9faf6;padding:0}.lesson-shell{box-shadow:none;border-radius:0}.lesson-nav{min-height:59px;padding:10px 17px}.lesson-brand{font-size:0}.mini-brand{margin:0;font-size:17px}.lesson-nav-count{font-size:11px}.lesson-body{padding:26px 16px 32px}.lesson-heading-row{align-items:start}.lesson-heading-row h1{font-size:28px}.lesson-heading-row p{font-size:13px}.lesson-step-count{font-size:11px}.lesson-step-count strong{font-size:20px}.practice-panel{border-radius:14px;padding:13px}.practice-panel-top{flex-direction:column;align-items:flex-start;gap:12px}.practice-panel-top h2{font-size:17px}.motion-footer{flex-direction:column;align-items:flex-start;gap:8px}.question-panel{padding:22px 16px}.answer-choices{grid-template-columns:1fr}.answer-choices.many-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.many-choices .answer-choice{min-height:85px}.completion-panel{flex-wrap:wrap;padding:18px}.completion-panel button{text-align:center;width:100%}.lesson-footer{padding:0 17px 30px}}@media (width<=370px){.answer-choices.many-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.back-link{font-size:12px}.lesson-nav{gap:5px}}@media (prefers-reduced-motion:reduce){.answer-choice{transition:none}.answer-choice:hover{transform:none}}
