@charset "UTF-8";
:root{--ink:#252a29;--muted:#707974;--paper:#f4f4f1;--line:#d6dad4;font-family:"Malgun Gothic","Apple SD Gothic Neo",Arial,sans-serif;font-synthesis:none;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0}h1,h2,h3,p{margin:0}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit;cursor:pointer}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #536d5b;outline-offset:5px}button,a{transition:background .16s,color .16s}button:active{transform:translateY(1px)}.header,main,footer{max-width:1192px;margin:auto;padding-left:36px;padding-right:36px}.header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:20px;letter-spacing:-1px}.brand svg{width:31px;height:43px}.brand small{display:block;font-size:11px;letter-spacing:.1px;font-weight:400;margin-top:5px;color:var(--muted)}nav{display:flex;align-items:center;gap:34px;font-size:12px;font-weight:700}nav a span{font-weight:400;color:var(--muted);margin-left:6px}.profile-button{border:1px solid #bec5bd;padding:11px 14px;border-radius:3px;font-size:11px;max-width:245px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding:60px 0 52px;min-height:500px;border-bottom:1px solid var(--line);position:relative}.hero-label{font-size:11px;color:var(--muted);margin-bottom:23px;line-height:1.7}.hero-label:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#789080;margin-right:8px}.hero-label span{display:block;padding-left:13px;font-size:10px}.hero h1{font-size:53px;line-height:1.26;font-weight:700;letter-spacing:-3px}.hero-english{font-size:25px;letter-spacing:-.8px;font-weight:400;line-height:1.25;margin-top:18px;color:#7b847c}.hero-description{font-size:12px;line-height:1.8;margin:23px 0 22px;color:#536159}.hero-description span{font-size:11px;color:var(--muted)}.primary{display:inline-flex;justify-content:center;align-items:center;gap:15px;background:var(--ink);color:white;padding:14px 22px;border:1px solid var(--ink);border-radius:3px;font-size:13px;font-weight:700}.primary>span{font-size:11px;font-weight:400;color:#d5dcd5}.primary:hover{background:#44564b}.primary>span:last-child{margin-left:10px}.hero-meta{display:flex;gap:19px;margin-top:22px;font-size:10px;color:var(--muted)}.hero-art svg{display:block;width:100%;max-height:400px}.games-section{padding:47px 0 54px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:27px;gap:20px}.section-kicker{display:block;color:var(--muted);font-size:10px;margin-bottom:10px;line-height:1.6}.section-heading h2{font-size:24px;font-weight:700;letter-spacing:-1px}.section-heading h2 span{font-size:16px;font-weight:400;color:var(--muted);margin-left:12px;letter-spacing:-.3px}.section-heading>p{font-size:11px;line-height:1.9;color:#536159;text-align:right}.section-heading>p span{font-size:10px;color:var(--muted)}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.game-card{border:1px solid #cdd3cb;border-radius:5px;overflow:hidden;background:#fafbf8;transition:border-color .15s}.game-card:hover{border-color:#78877b}.card-art{height:216px;overflow:hidden;position:relative;border-bottom:1px solid #dce1d8}.card-art svg{width:100%;height:100%;display:block}.card-tag{position:absolute;left:21px;top:17px;font-size:9px;color:#536057;background:#f7f8f1d0;padding:4px 7px;border:1px solid #bcc6ba70;border-radius:3px}.card-body{padding:21px 23px 19px}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.card-body h3{font-size:20px;letter-spacing:-.7px;font-weight:700}.game-en{display:block;font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-top:7px}.level-tag{font-size:9px;white-space:nowrap;color:#62705b;background:#edf0e8;padding:5px 7px}.card-description{font-size:11px;line-height:1.8;color:#617065;margin-top:17px;min-height:37px}.card-description small{display:block;font-size:10px;color:#7a847d}.card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e1e5dd;padding-top:16px;margin-top:17px;gap:14px}.card-record{font-size:10px;color:var(--muted)}.card-record strong{font-size:16px;color:var(--ink);font-weight:500;margin-left:9px;font-variant-numeric:tabular-nums}.play-button{font-size:11px;border:1px solid #bfc8bc;padding:9px 16px;border-radius:3px;background:#f8faf5}.play-button:hover{color:white;background:var(--ink);border-color:var(--ink)}.play-button span{font-size:10px;margin-left:8px}.ranking-section{padding:39px 0 42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.7fr;gap:55px}.ranking-intro h2{font-size:32px;line-height:1.3;letter-spacing:-1.5px;font-weight:600;margin:17px 0}.ranking-intro h2>span{display:block;font-size:23px;line-height:1.2;color:#818a81;letter-spacing:-.5px;font-weight:400;margin-top:13px}.connection{font-size:10px;margin-top:30px;line-height:1.8;color:#606e63;white-space:pre-line}.connection:before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:#929c91}.connection.online:before{background:#4e7e5f}.fine-print{font-size:10px;line-height:1.7;color:var(--muted);margin-top:8px;max-width:250px;white-space:pre-line}.ranking-board{align-self:start;padding:5px 0;min-height:300px}.ranking-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}select{font-size:12px;padding:10px 29px 10px 10px;background:#fafbf8;border:1px solid var(--line);border-radius:3px;color:var(--ink);max-width:62%}.segmented{display:flex;gap:3px;border:1px solid var(--line);padding:3px;border-radius:3px}.segmented button{font-size:10px;padding:6px 9px;white-space:nowrap;border-radius:2px}.segmented span{display:block;font-size:9px;margin-top:2px}.segmented .active{background:var(--ink);color:white}.table-head,.rank-row{display:grid;grid-template-columns:42px 1fr 50px 82px;gap:12px;align-items:center}.table-head{font-size:9px;line-height:1.6;padding-bottom:12px;border-bottom:1px solid #cbd3c7;color:var(--muted)}.table-head>span:nth-last-child(-n+2){text-align:right}.rank-row{font-size:12px;padding:14px 0;border-bottom:1px solid #dde2d8}.rank-row>strong{text-align:right;font-weight:500}.rank-level{text-align:right;font-size:11px;color:#6e7c6d}.rank-row small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.rank-row.mine{font-weight:700;color:#476b4d}.empty-rank{padding:33px 0;text-align:center;font-size:12px;line-height:1.9;color:var(--muted)}.empty-rank>span{display:block;font-size:22px;font-weight:200;margin-bottom:8px;color:#80917e}.my-rank{padding-top:16px;font-size:10px;color:#65755f;line-height:1.8}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:49px 0 56px}.principles article>span{font-size:10px;color:#879381;display:block;margin-bottom:14px}.principles h3{font-size:15px;font-weight:600;line-height:1.6}.principles h3 small{font-size:13px;font-weight:400;color:#65755f}.principles p{font-size:10px;line-height:1.9;margin-top:12px;color:#75816f}footer{border-top:1px solid var(--line);padding-top:25px;padding-bottom:25px;display:flex;align-items:center;flex-wrap:wrap;gap:19px}.footer-brand{font-size:16px;font-weight:700}.footer-brand span{font-size:12px;margin-left:7px;font-weight:400;color:var(--muted)}footer>div{display:flex;gap:17px;margin-left:auto}footer button{font-size:10px;padding:0;color:var(--muted)}footer small{width:100%;font-size:10px;color:#84907d}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog{border:1px solid #aebbac;border-radius:6px;padding:30px;background:#f7f8f3;color:var(--ink);box-shadow:0 16px 80px #1e2b2140;max-height:94dvh;overflow:auto}dialog::backdrop{background:#1d2a24b5;backdrop-filter:blur(5px)}.small-dialog{width:min(460px,calc(100% - 26px))}.small-dialog h2{font-size:22px;font-weight:600;letter-spacing:-.7px;line-height:1.5;margin:8px 0 15px}.small-dialog h2 small{display:block;font-weight:400;font-size:17px;color:var(--muted);letter-spacing:-.3px}.close{position:absolute;right:15px;top:11px;font-size:27px;font-weight:300;padding:5px}.small-dialog p{font-size:11px;line-height:1.9;color:var(--muted)}label{display:block;font-size:11px;margin:17px 0 8px}input{width:100%;padding:13px;border:1px solid #bcc7b6;border-radius:3px;background:#fcfdf9;min-width:0;font-size:13px;color:var(--ink)}.nickname-input{display:flex;gap:7px}.nickname-input input{flex:1}.nickname-input button{border:1px solid #bec8b8;border-radius:3px;min-width:46px;font-size:24px;background:#edf1e6}.random-name{font-size:10px;color:#586f4d;margin-top:10px;padding:0}.random-name span{margin-left:7px;color:var(--muted)}.small-dialog .field-hint{font-size:10px;margin:13px 0 20px;color:#7c8974}.full{width:100%}.secondary{border:1px solid #bfccba;background:#fafcf6;border-radius:3px;padding:11px 15px;font-size:11px}.secondary:hover{background:#e6ece0}.status-text{font-size:11px;line-height:1.8;margin:13px 0;color:#667660;white-space:pre-line}.status-text.error{color:#995b55}.small-dialog details{margin-top:22px;border-top:1px solid var(--line);padding-top:16px;font-size:11px}.small-dialog summary{cursor:pointer}#restoreForm button{margin-top:12px}#recoveryArea{background:#e9eee1;padding:15px;margin-top:19px;border-radius:3px}#recoveryArea h3{font-size:13px;font-weight:600}#recoveryArea p{font-size:10px;margin-top:9px}#recoveryCode{display:block;overflow-wrap:anywhere;font-size:11px;padding:11px 0;user-select:all}.text-danger{font-size:10px;color:#926358;text-decoration:underline;margin-top:20px;padding:0}.game-dialog{padding:22px;width:min(860px,calc(100% - 20px))}.game-header{display:flex;justify-content:space-between;align-items:center;gap:15px}.game-header h2{font-size:22px;font-weight:600;letter-spacing:-.8px}#gameEnglish{font-size:12px;color:var(--muted);margin-top:5px}.game-header-actions{display:flex;gap:7px}.icon-button{padding:9px 10px;min-width:35px;border:1px solid #c2cdbd;border-radius:3px;font-size:12px;background:#fafcf6}.game-stats{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:19px 0 0;padding:13px 0;border-top:1px solid var(--line);font-size:11px;color:#687962}.game-stats>div{white-space:nowrap}.game-stats span{font-size:10px;margin-left:5px;color:var(--muted)}.game-stats strong{margin-left:13px;font-size:24px;line-height:1;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}#gameLives{font-size:11px}.progress-line{min-height:23px;padding-bottom:7px;color:#6c7a65;font-size:10px}.canvas-wrap{position:relative;background:#eceee8;border:1px solid #ccd4c5;border-radius:4px;overflow:hidden;line-height:0}canvas{width:100%;height:auto;display:block;touch-action:none;outline-offset:-4px}.game-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#f4f6eef5;padding:18px;line-height:normal}.overlay-card{text-align:center;max-width:565px}.overlay-card h3{font-size:29px;letter-spacing:-1px;font-weight:600;white-space:pre-line}.overlay-card>p{font-size:12px;line-height:1.8;margin:14px auto;max-width:490px;white-space:pre-line}.overlay-card .primary{min-width:200px;margin:5px;font-size:12px;padding:13px 18px}.overlay-card .secondary{display:block;margin:10px auto}.text-button{font-size:10px;color:#6d7b65;display:block;margin:10px auto;padding:5px}.result-score{font-size:43px;font-weight:400;letter-spacing:-1px;margin:14px 0;color:#4c6942}.touch-controls{display:flex;justify-content:center;gap:12px;margin:13px 0 10px}.touch-controls button{border:1px solid #b5c3ab;background:#fafcf6;border-radius:3px;min-width:80px;padding:13px 23px;font-size:12px;touch-action:none;user-select:none}.touch-controls button:active{background:#dbe5d1}.control-hint{font-size:10px;text-align:center;color:#67785d;line-height:1.8;white-space:pre-line}.game-mode{font-size:9px;text-align:center;color:#7a8971;line-height:1.7;margin-top:9px;white-space:pre-line}.ad-dialog{text-align:center}.ad-label{font-size:10px;color:var(--muted);display:block;padding-bottom:15px;border-bottom:1px solid var(--line)}.ad-symbol{font-size:47px;font-weight:200;color:#899c7e;margin:32px 0 18px}.ad-dialog .primary{margin:25px 0 15px}.ad-dialog>small{font-size:9px;color:var(--muted)}.info-body{font-size:12px;line-height:1.9}.info-body p{margin:15px 0}.info-body h3{font-size:14px;margin-top:20px}.info-body a{color:#53783f;text-decoration:underline}.toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);z-index:10;max-width:90vw;background:#2c3927;color:#f0f4eb;font-size:11px;line-height:1.8;white-space:pre-line;padding:12px 20px;border-radius:4px;box-shadow:0 8px 25px #0002}body:has(dialog[open]){overflow:hidden}
@media(max-width:900px){.header,main,footer{padding-left:25px;padding-right:25px}.hero{grid-template-columns:1fr 1fr;padding:45px 0}.hero h1{font-size:43px}.hero-english{font-size:23px}.card-art{height:190px}.ranking-section{gap:28px}.ranking-controls{gap:9px}.principles{gap:18px}nav{gap:20px}}
@media(max-width:650px){.header,main,footer{padding-left:20px;padding-right:20px}.header{height:80px}.brand{font-size:18px;gap:8px}.brand svg{width:25px;height:37px}.brand small{font-size:10px;margin-top:3px}nav>a{display:none}.profile-button{font-size:10px;padding:10px;max-width:180px}.hero{grid-template-columns:1fr;padding:31px 0 25px;min-height:0}.hero-label{font-size:10px;margin-bottom:20px}.hero-label span{font-size:9px}.hero h1{font-size:42px;line-height:1.23;letter-spacing:-2.5px}.hero-english{font-size:21px;margin-top:13px}.hero-description{font-size:11px;margin:22px 0 18px}.hero-description span{font-size:10px}.primary{font-size:12px;padding:12px 17px;gap:10px}.primary>span{font-size:10px}.hero-meta{font-size:9px;gap:18px;margin-top:17px}.hero-art{position:absolute;width:150px;height:190px;right:-8px;top:78px;opacity:.75;pointer-events:none;z-index:0}.hero-art svg{height:100%;width:100%}.hero-copy{position:relative;z-index:1}.hero h1,.hero-english{max-width:250px}.games-section{padding:31px 0 37px}.section-heading{align-items:center;gap:10px;margin-bottom:18px}.section-heading h2{font-size:20px}.section-heading h2 span{font-size:11px;display:block;margin:6px 0 0}.section-kicker{font-size:9px;margin-bottom:7px}.section-heading>p{font-size:9px;max-width:125px;line-height:1.6}.section-heading>p span{font-size:9px;display:block;margin-top:4px}.game-grid{gap:14px;grid-template-columns:1fr}.card-art{height:180px}.card-body{padding:17px 19px}.card-body h3{font-size:20px}.game-en{font-size:11px;margin-top:5px}.card-description{font-size:11px;margin-top:12px;min-height:0}.card-bottom{padding-top:12px;margin-top:13px}.card-record strong{font-size:15px}.play-button{font-size:11px;padding:9px 15px}.ranking-section{grid-template-columns:1fr;padding:28px 0;gap:23px}.ranking-intro h2{font-size:26px;margin:12px 0}.ranking-intro h2>br{display:none}.ranking-intro h2>span{font-size:18px;margin-top:8px}.ranking-intro h2>span br{display:none}.connection{margin-top:17px}.fine-print{max-width:100%;font-size:9px}.ranking-board{min-height:240px}.ranking-controls{gap:7px;margin-bottom:20px}select{font-size:10px;max-width:62%;padding:10px 20px 10px 8px}.segmented button{font-size:9px;padding:5px 7px}.segmented span{font-size:8px}.table-head,.rank-row{grid-template-columns:28px minmax(0,1fr) 37px 66px;gap:8px}.rank-row{font-size:11px}.rank-row>span:nth-child(2){overflow-wrap:anywhere}.principles{grid-template-columns:1fr;gap:23px;padding:32px 0 37px}.principles article{position:relative;padding-left:33px}.principles article>span{position:absolute;left:0;top:4px;font-size:9px}.principles h3{font-size:14px}.principles h3 br{display:none}.principles h3 small{margin-left:10px;font-size:12px}.principles p{font-size:10px;margin-top:8px}footer{padding-top:22px;padding-bottom:22px;gap:16px}.footer-brand{font-size:15px}footer>div{margin-left:0;gap:16px;width:100%}footer button,footer small{font-size:9px}.small-dialog{padding:25px}.small-dialog h2{font-size:20px}.small-dialog h2 small{font-size:16px}.game-dialog{padding:13px;max-height:96dvh}.game-header h2{font-size:19px}#gameEnglish{font-size:10px}.game-header .section-kicker{font-size:8px}.game-header-actions{gap:4px}.icon-button{font-size:10px;padding:8px;min-width:30px}.game-stats{font-size:10px;gap:8px;margin-top:14px;padding:11px 0}.game-stats span{display:none}.game-stats strong{font-size:20px;margin-left:7px}#gameLives{font-size:10px}.progress-line{font-size:9px;min-height:26px}.canvas-wrap{min-height:300px}.canvas-wrap canvas{height:300px;object-fit:contain}.overlay-card h3{font-size:22px;line-height:1.4}.overlay-card>p{font-size:10px;line-height:1.65;margin:10px auto}.game-overlay{padding:12px}.overlay-card .primary{font-size:11px;min-width:175px;padding:10px 12px;margin:3px}.overlay-card .secondary{font-size:10px;padding:8px 10px;margin:7px auto}.result-score{font-size:31px;margin:9px 0}.text-button{font-size:9px;margin:7px auto;padding:2px}.touch-controls{margin:11px 0 9px;gap:10px}.touch-controls button{font-size:11px;min-width:73px;padding:12px 18px}.control-hint{font-size:9px}.game-mode{font-size:8px}.toast{font-size:10px;width:max-content;max-width:90vw}}
@media(max-width:370px){.hero-art{width:110px;right:-8px;top:100px;opacity:.5}.hero h1{font-size:37px}.profile-button{max-width:153px}.header,main,footer{padding-left:16px;padding-right:16px}.game-dialog{padding:10px}.game-stats{font-size:9px}.game-stats strong{font-size:18px}}
@media(max-width:650px){.hero h1{max-width:none;font-size:38px;word-break:keep-all}.hero-art{position:static;width:230px;height:185px;margin:13px auto 0;opacity:1}.card-art{height:170px}.card-description{line-height:1.9}}
@media(max-width:370px){.hero h1{font-size:33px}.hero-art{width:210px;height:170px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Searchable game guides and language navigation */
.language-link{font-size:13px;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
.game-guide{padding:70px 0 48px;border-bottom:1px solid #d4d8d1}.game-guide h1{font-size:clamp(38px,6vw,68px);margin:12px 0 24px;letter-spacing:-.04em}.guide-lead{max-width:760px;font-size:19px;line-height:1.8;color:#53605b;margin-bottom:28px}.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px 56px;margin-top:48px}.guide-columns h2{font-size:21px}.guide-columns p,.guide-directory p{line-height:1.9;color:#53605b}.guide-directory{padding:48px 0 64px;border-top:1px solid #d4d8d1}.guide-directory h2{font-size:26px}.guide-directory h3{margin-top:32px}.guide-directory p{max-width:900px}.guide-links{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.guide-links a{border:1px solid #bbc3bb;padding:18px;text-decoration:none;display:flex;justify-content:space-between;gap:10px}.guide-links a:hover{background:#e7ebe4}.guide-links a:focus-visible{outline:2px solid #252a29;outline-offset:3px}
@media(max-width:650px){.header{flex-wrap:wrap;gap:12px}.header nav{flex-wrap:wrap;gap:12px}.game-guide{padding-top:36px}.guide-columns{grid-template-columns:1fr;gap:16px}.guide-links{grid-template-columns:1fr 1fr}.guide-links a{padding:14px;font-size:14px}.guide-lead{font-size:17px}}
@media(max-width:650px){.header nav>.language-link{display:inline-block;font-size:11px}.header{height:auto;min-height:76px;padding-top:14px;padding-bottom:14px}.header nav{margin-left:auto}}
