:root{font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif;color:#293b35;background:#f6f7f3;font-synthesis:none;font-weight:400;--green:#294f41;--muted:#7a8580;--line:#e6eae3;--gold:#f0cd65}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #bc8b23;outline-offset:3px}button,summary{touch-action:manipulation}svg{flex-shrink:0;vertical-align:middle}button svg{pointer-events:none}p,h1,h2{margin:0}.site-header{height:68px;max-width:1264px;padding:0 32px;margin:auto;display:flex;align-items:center;gap:18px;font-size:12px}.hub-link{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:750}.header-trail{border-left:1px solid #dce1d9;padding-left:18px;color:var(--muted)}.other-link{margin-left:auto;display:flex;align-items:center;gap:5px;color:#69756e}.shell{max-width:1264px;margin:0 auto;padding:32px 32px 20px}.hero{display:flex;justify-content:space-between;align-items:center;margin:6px 0 32px;min-height:136px}.hero-kicker{font-size:10px;font-weight:750;letter-spacing:2px;display:flex;align-items:center;gap:8px;color:#6d8276}.dot{display:inline-block;width:6px;height:6px;background:#719b79;border-radius:50%;flex-shrink:0}.hero h1{font-size:42px;letter-spacing:-2.4px;margin:12px 0 13px;line-height:1.2;font-weight:820}.hero h1>span:not(.title-dot){font-weight:450}.title-dot{color:#c8a641;margin-left:3px}.hero p{font-size:14px;color:#7d8680;line-height:1.8;letter-spacing:-.2px}.mobile-break{display:none}.hero-art{position:relative;width:190px;height:118px;margin-right:28px;isolation:isolate}.art-tile{position:absolute;width:65px;height:65px;display:grid;place-items:center;border-radius:14px;font-size:30px;font-weight:800;box-shadow:0 6px #dae2d7;top:30px;transform:rotate(-12deg)}.art-1{left:4px;background:#edf1e7;color:#648b80;z-index:1}.art-flag{background:#f0d785;left:60px;top:10px;z-index:3;transform:rotate(7deg);box-shadow:0 6px #dfc56f}.art-2{left:117px;top:44px;background:#e6ecdf;color:#81a269;transform:rotate(14deg);z-index:2}.art-star{position:absolute;right:12px;top:0;color:#bfa64d;font-size:23px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:24px;align-items:start}.card{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 4px 22px #243b3004}.game-panel{padding:24px;min-width:0}.game-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.level-tabs{display:flex;border-radius:11px;padding:4px;background:#f2f4ef;gap:4px;flex:1;max-width:455px}.level-tabs button{background:none;border:0;border-radius:8px;padding:10px 15px;flex:1;font-size:13px;font-weight:750;white-space:nowrap}.level-tabs button span{margin-left:7px;color:#929b94;font-size:10px;font-weight:450;letter-spacing:.1px}.level-tabs button[aria-pressed=true]{background:#fff;box-shadow:0 2px 5px #203c3010;color:#2f5947}.level-tabs button[aria-pressed=true] span{color:#759483}.icon-button{width:36px;height:36px;display:grid;place-items:center;background:none;border:1px solid #e8ece5;border-radius:10px}.icon-button:hover{background:#f3f5f0}.player-line{display:flex;gap:10px;align-items:center;padding:19px 0;font-size:11px;color:#929b94}.player-line label{font-weight:700;color:#68796e;font-size:12px}.player-line input{width:134px;min-width:0;border:0;border-bottom:1px solid #e0e6dd;padding:5px 2px;color:#4b6254;background:transparent;font-weight:650;font-size:12px;border-radius:0}.player-line input:disabled{color:#4b6254;opacity:1}.player-line>span{margin-left:auto}.field-wrap{background:#eff2eb;border:1px solid #e5eadd;border-radius:14px;overflow:hidden}.dashboard{display:flex;align-items:center;justify-content:space-between;padding:22px 28px 20px;max-width:560px;margin:auto}.meter{display:flex;flex-direction:column;gap:7px}.meter-label{font-size:10px;color:#7b897e;display:flex;gap:6px;align-items:center}.counter{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:29px;letter-spacing:1px;font-weight:700;line-height:1.15;color:#354e40;font-variant-numeric:tabular-nums}.time-meter{align-items:flex-end}.reset-face{width:53px;height:53px;background:#f6df92;border:1px solid #e8d086;box-shadow:0 3px #e1ce93;border-radius:16px;display:grid;place-items:center;color:#5c5537;transition:transform .15s}.reset-face:hover{transform:translateY(-2px)}.reset-face:active{transform:translateY(2px);box-shadow:none}.reset-face.lost{background:#f6d6c8;color:#9e654b;border-color:#eabdae;box-shadow:0 3px #e6bfaf}.board-area{position:relative}.board-scroll{overflow:auto;padding:3px 16px 14px;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b2c1ab transparent}.board{--cell:34px;display:grid;gap:4px;width:max-content;padding:8px;margin:0 auto;background:#dce4d6;border:1px solid #d3ddcd;border-radius:9px;user-select:none;-webkit-user-select:none}.board-row{display:grid;grid-template-columns:repeat(var(--columns),var(--cell));gap:4px}.tile{position:relative;width:var(--cell);height:var(--cell);padding:0;display:grid;place-items:center;border:1px solid #fbfcf7;border-bottom:3px solid #d4ddcc;background:#f9faf5;border-radius:5px;font:750 17px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#3c6453;transition:background .1s;touch-action:pan-x pan-y}.tile.covered:hover,.tile.flag:hover{background:#fff5ca}.tile.covered:active{border-bottom-width:1px;transform:translateY(1px)}.tile.open{background:#e7eddf;border:1px solid #dde5d5}.tile.flag{color:#8c7434;background:#fbefc6;border-color:#fff8dc;border-bottom-color:#ddd0a5}.tile.mine{background:#f2d8cb;color:#a6664b;border-color:#e9ccba}.tile.wrong{background:#f4deda;color:#bb674e;border-color:#e9cabe}.tile.exploded{background:#d48468;color:#fff;border-color:#c8795e;animation:shake .35s}.tile.n1{color:#4b87ae}.tile.n2{color:#598c62}.tile.n3{color:#ca7155}.tile.n4{color:#8873b2}.tile.n5{color:#a95c56}.tile.n6{color:#46898c}.tile.n7{color:#515867}.tile.n8{color:#857367}.tile:focus-visible{outline:3px solid #a88226;outline-offset:0;z-index:2}.field-footer{display:flex;align-items:center;justify-content:space-between;padding:4px 18px 15px;font-size:10px;color:#85917f;gap:8px}.field-footer span:first-child{display:flex;gap:5px;align-items:center}.field-footer span:last-child{font-family:ui-monospace,monospace;color:#73866b}.progress-track{height:3px;background:#e2e8db}.progress-track>div{height:100%;background:#81a47b;transition:width .25s}.play-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:18px}.mode-toggle{display:flex;border:1px solid #e5eae1;border-radius:9px;padding:3px;gap:3px}.mode-toggle button{font-size:11px;display:flex;gap:6px;align-items:center;padding:8px 11px;border:0;background:none;border-radius:6px;color:#8a948b}.mode-toggle button[aria-pressed=true]{background:#edf2e9;color:#41634c;font-weight:700}.new-game{border:0;background:none;color:#748071;display:flex;gap:6px;align-items:center;font-size:11px;padding:10px 2px}.game-status{min-height:43px;display:flex;align-items:center;justify-content:center;padding:12px 0 0;text-align:center}.game-status p{font-size:11px;color:#7c897b;line-height:1.7}.game-status p span{color:#a2a99e;margin-left:6px}.game-status .error-message{color:#ad684b}.instructions{border-top:1px solid #edf0e9;margin-top:16px;padding-top:16px;font-size:11px}.instructions summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none;color:#7e897e}.instructions summary::-webkit-details-marker{display:none}.instructions summary svg:last-child{margin-left:auto}.instructions[open] summary svg:last-child{transform:rotate(180deg)}.instruction-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.instruction-grid b{font-size:12px;color:#526c58}.instruction-grid p{color:#8a9286;line-height:1.8;margin-top:7px}.keyboard-guide{padding:16px 0 0;line-height:1.9;color:#919889}.hall{padding:23px;position:sticky;top:24px}.hall-heading{display:flex;gap:11px;align-items:center;margin-bottom:24px}.hall-heading h2{font-size:19px;letter-spacing:-.7px;margin-top:3px}.hall-icon{width:41px;height:43px;display:grid;place-items:center;background:#fbf3d9;color:#ad924c;border-radius:12px}.eyebrow{font-size:8px;letter-spacing:1.6px;font-weight:750;color:#a29570}.hall-heading .icon-button{margin-left:auto;border:none;color:#9aa297}.period-tabs{display:flex;background:#f2f4ef;border-radius:9px;padding:4px;gap:3px}.period-tabs button{flex:1;background:none;border:0;border-radius:6px;font-size:12px;padding:9px 5px;color:#8a9486}.period-tabs button[aria-pressed=true]{background:#fff;box-shadow:0 2px 4px #2745310b;color:#496745;font-weight:750}.hall-meta{display:flex;justify-content:space-between;font-size:10px;color:#94a08f;padding:19px 0 13px;border-bottom:1px solid #edf0e8}.hall-meta>span:first-child{display:flex;align-items:center;gap:6px}.hall-meta .dot{width:5px;height:5px}.hall-content{min-height:278px}.hall-empty{min-height:278px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#c5cdbb;text-align:center;gap:13px}.hall-empty strong{font-size:13px;color:#89957e;font-weight:600;margin-top:2px}.hall-empty p{font-size:11px;line-height:1.9;color:#a0aa95}.hall table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.hall th{font-size:9px;color:#a2ab9b;font-weight:500;text-align:left;padding:12px 0 7px}.hall th:first-child{width:37px}.hall th:last-child{width:88px;text-align:right}.hall td{padding:11px 0;border-bottom:1px solid #f0f3ec}.hall td:last-child{text-align:right}.rank{display:grid;place-items:center;width:23px;height:23px;font-size:11px;color:#94a28b;font-weight:650}.rank-1{color:#b89437;background:#fbf0cd;border-radius:7px}.rank-2{color:#7e9383}.rank-3{color:#b58f67}.rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 22px);display:inline-block;vertical-align:middle}.record{font:600 12px ui-monospace,SFMono-Regular,Consolas,monospace;color:#4b6351}.me{font-size:8px;background:#e3eddf;color:#527545;padding:2px 3px;border-radius:3px;margin-left:4px}.my-row{background:#f7faf3}.my-best{margin-top:12px;background:#f0f5eb;border:1px solid #e5eeda;border-radius:8px;padding:12px 10px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#6e8a5c}.my-best b{margin-left:7px}.my-best strong{font-family:ui-monospace,monospace;font-size:12px}.hall-note{font-size:10px;color:#9ba591;line-height:1.9;border-top:1px solid #edf1e7;padding-top:16px;margin-top:10px;text-align:center}.more{width:100%;border:0;background:none;color:#6f8c61;font-size:11px;padding:14px 0 4px}.app-footer{display:flex;gap:18px;align-items:center;font-size:10px;color:#a5ac9f;padding:27px 1px 6px}.app-footer>span:first-child{font-size:9px;letter-spacing:1.3px;font-weight:700;display:flex;gap:6px;align-items:center;color:#89977e}.app-footer>a{margin-left:auto}.result{position:relative;display:flex;gap:13px;align-items:center;flex-wrap:wrap;background:#f1f6e9;border:1px solid #dfe9d1;border-radius:12px;padding:18px;margin-top:8px;overflow:hidden}.result h2{font-size:15px;color:#547041;letter-spacing:-.3px}.result p{font-size:11px;color:#7c916b;line-height:1.8;margin-top:5px}.result-icon{color:#a3b888}.result.lost{background:#fbf2eb;border-color:#f0e1d6}.result.lost h2{color:#ad7f5e}.result.lost p,.result.lost .result-icon{color:#b99a7f}.save-error{width:100%}.save-error p{color:#a2664a;margin:0 0 10px}.primary,.secondary{padding:11px 18px;font-size:12px;border-radius:9px;border:1px solid #e0e6d8;background:#f7f9f3;color:#607751}.primary{background:#426446;color:#fff;border-color:#426446}.confirm{padding:30px;max-width:390px;width:calc(100% - 40px);color:#6e855e}.confirm::backdrop{background:#263b3066;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirm h2{font-size:21px;color:#375138;margin:18px 0 12px}.confirm p{font-size:13px;color:#8c987e}.dialog-actions{display:flex;gap:9px;margin-top:25px;justify-content:flex-end}.starting-mask{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;background:#edf2eac9;color:#5f7b52;pointer-events:none}.loader{width:18px;height:18px;border:2px solid #c1d0b5;border-top-color:#60794e;border-radius:50%;animation:rotate 1s linear infinite}.spin{animation:rotate 1.5s linear infinite}.confetti{position:absolute;inset:0;pointer-events:none}.confetti i{position:absolute;width:5px;height:9px;top:-12px;opacity:0;animation:confetti 1.8s ease-out forwards}.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}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes confetti{10%{opacity:1}to{transform:translate(17px,160px) rotate(260deg);opacity:0}}@media(min-width:1150px){.wide{grid-template-columns:minmax(0,1fr)}.wide .game-panel{padding:26px 30px}.wide .board{--cell:29px;gap:3px}.wide .board-row{gap:3px}.wide .hall{position:static;max-width:520px;width:100%;justify-self:center}.wide .game-top,.wide .player-line{max-width:620px;margin:auto}.wide .field-footer{padding-left:30px;padding-right:30px}}@media(max-width:1100px){.play-layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.game-panel,.hall{padding:19px}.level-tabs button{padding:10px}.level-tabs button span{display:block;margin:4px 0 0}.player-line>span{display:none}.board{--cell:31px;gap:3px}.board-row{gap:3px}}@media(max-width:850px){.site-header{padding:0 24px;height:60px}.shell{padding:22px 24px}.play-layout{grid-template-columns:minmax(0,1fr)}.hero{margin-bottom:25px}.hero h1{font-size:38px}.hero-art{margin-right:6px;transform:scale(.85);transform-origin:right center}.hall{position:static;padding:23px}.hall-content,.hall-empty{min-height:220px}.hall-heading{margin-bottom:19px}.hall th:last-child{width:105px}.hall th:first-child{width:44px}.board{--cell:34px;gap:4px}.board-row{gap:4px}.game-panel{padding:23px}.level-tabs button span{display:inline-block;margin:0 0 0 6px}.player-line>span{display:block}.wide .board{--cell:30px;gap:3px}.wide .board-row{gap:3px}.hall table{font-size:13px}.hero-kicker{font-size:9px}.app-footer{flex-wrap:wrap;gap:12px}.app-footer>span:nth-child(2){order:3;flex-basis:100%}}@media(max-width:480px){.site-header{padding:0 18px;height:54px}.header-trail{display:none}.shell{padding:17px 14px}.hero{margin:4px 4px 24px;min-height:118px}.hero h1{font-size:32px;letter-spacing:-1.9px;margin:12px 0 11px}.hero p{font-size:11px;line-height:1.85}.hero-art{width:94px;transform:scale(.6);transform-origin:left center;margin-right:10px}.art-1{left:-5px}.art-flag{left:45px}.art-2{left:94px}.art-star{right:-40px}.hero-kicker{font-size:8px;letter-spacing:1.4px}.mobile-break{display:block}.game-panel{padding:14px;border-radius:15px}.level-tabs{max-width:none}.level-tabs button{padding:8px 9px;font-size:12px}.level-tabs button span{display:block;margin:4px 0 0;font-size:9px}.game-top{gap:9px}.sound-button{width:32px;height:36px;border:none}.player-line{padding:13px 2px;gap:8px}.player-line input{width:120px;font-size:16px}.player-line>span{font-size:8px}.player-line label{font-size:10px}.field-wrap{border-radius:11px}.dashboard{padding:17px 18px}.counter{font-size:26px}.meter-label{font-size:9px;gap:4px}.reset-face{width:47px;height:47px;border-radius:14px}.board{--cell:29px;gap:3px;padding:6px}.board-row{gap:3px}.board-scroll{padding:3px 8px 12px}.tile{font-size:16px;border-radius:4px}.field-footer{padding:3px 10px 12px;font-size:8px}.field-footer svg{width:12px}.mode-toggle button{padding:8px;font-size:10px;gap:4px}.new-game,.game-status p{font-size:10px}.game-status p span{display:block;margin:0}.play-controls{margin-top:13px}.hall{padding:20px;border-radius:15px}.instruction-grid{gap:15px;grid-template-columns:1fr}.result{padding:15px 12px;gap:9px}.result h2{font-size:13px}.result p{font-size:10px}.result-icon svg{width:22px}.app-footer{padding:22px 3px}.instructions{padding-top:14px;margin-top:13px}}@media(max-width:360px){.board{--cell:26px}.hero-art{display:none}.player-line>span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
