.header{background:linear-gradient(#282846e6 0%,#1a1a2e00 100%);border-bottom:1px solid #333;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;max-width:500px;padding:10px 16px;display:flex;position:relative}.header:before{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#538d4e0a 0 1px,#0000 1px 24px);position:absolute;top:0;bottom:0;left:0;right:0}.header-btn{color:#eee;cursor:pointer;background:0 0;border:1px solid #555;border-radius:50%;justify-content:center;align-items:center;width:36px;min-width:44px;height:36px;min-height:44px;font-size:18px;transition:background .15s,transform .1s;display:flex}.header-btn:hover{background:#333}.header-btn:active{transform:scale(.92)}.header-right{gap:8px;display:flex}.title{letter-spacing:2px;color:#fff;text-shadow:0 0 12px #538d4e66;font-family:Outfit,Noto Sans KR,sans-serif;font-size:22px;font-weight:900}.message-container{color:#1a1a2e;z-index:1000;opacity:0;pointer-events:none;text-align:center;background:#fff;border-radius:8px;max-width:90vw;padding:10px 24px;font-size:15px;font-weight:600;transition:opacity .25s,transform .3s cubic-bezier(.34,1.56,.64,1);position:fixed;top:60px;left:50%;transform:translate(-50%)translateY(-20px);box-shadow:0 6px 24px #0006,0 2px 8px #0003}.message-container.show{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.board-container{flex:1;justify-content:center;align-items:center;width:100%;max-width:360px;padding:8px 0;display:flex}.board{flex-direction:column;gap:6px;width:100%;display:flex}.board-row{justify-content:center;gap:6px;display:flex}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-6px)}20%,40%,60%,80%{transform:translate(6px)}}.board-row.shake{animation:.5s ease-in-out shake}.cell{background:#ffffff05;border:2px solid #444;border-radius:8px;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;box-shadow:inset 0 2px 6px #0000004d}.cell.filled{background:#ffffff0a;border-color:#888;box-shadow:inset 0 1px 3px #0003}.cell.revealed{box-shadow:none;background:0 0;border-color:#0000}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.cell.pop{animation:.1s ease-in-out pop}@keyframes flip{0%{transform:perspective(400px)rotateX(0)}40%{transform:perspective(400px)rotateX(90deg)}60%{transform:perspective(400px)rotateX(90deg)}to{transform:perspective(400px)rotateX(0)}}.cell.flip{animation:.6s cubic-bezier(.4,0,.2,1) both flip}.cell-char{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-family:Noto Sans KR,Outfit,sans-serif;font-size:28px;font-weight:400;display:flex}.jamo-slots{flex-direction:row;justify-content:center;align-items:center;gap:2px;padding:4px;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.jamo-slot{color:#fff;border-radius:5px;flex:1;justify-content:center;align-items:center;height:100%;font-family:Noto Sans KR,Outfit,sans-serif;font-size:18px;font-weight:700;transition:background-color .2s;display:flex}.jamo-slot.correct{background:#4caf50;box-shadow:0 0 10px #4caf5080,inset 0 1px #ffffff26}.jamo-slot.present{background:#f9a825;box-shadow:0 0 8px #f9a82566,inset 0 1px #ffffff26}.jamo-slot.absent{background:#3a3a4c}.jamo-slot.misplaced{background:#9c5fd0;box-shadow:0 0 8px #9c5fd066,inset 0 1px #ffffff26}.keyboard{width:100%;max-width:500px;padding:8px 4px;padding-bottom:max(8px, env(safe-area-inset-bottom));flex-direction:column;flex-shrink:0;gap:6px;display:flex}.keyboard-row{justify-content:center;gap:4px;display:flex}.shift-row{gap:4px}.key{color:#eee;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:linear-gradient(#606070 0%,#4a4a58 100%);border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;min-width:30px;max-width:44px;min-height:48px;font-family:Noto Sans KR,Outfit,sans-serif;font-size:16px;font-weight:700;transition:background .1s,transform 80ms,filter 80ms;display:flex;position:relative;box-shadow:0 2px #333,0 3px 6px #0003}@keyframes keyPress{0%{filter:brightness();transform:scale(1)}50%{filter:brightness(.8);transform:scale(.92)}to{filter:brightness();transform:scale(1)}}.key:active{filter:brightness(.78);animation:.15s ease-out keyPress;transform:scale(.92);box-shadow:0 1px #333,0 1px 3px #0003}.key-wide{flex:1.5;max-width:68px;font-size:14px}.key-enter{color:#fff;background:linear-gradient(#5da854 0%,#458a3c 100%)}.key-enter:active{background:linear-gradient(#4a9342 0%,#3a7632 100%)}.key-back{background:linear-gradient(#7a5555 0%,#5e4040 100%)}.key-shift{background:linear-gradient(#5a5a6e 0%,#444458 100%);min-height:40px;font-size:15px}.key-correct{color:#fff;box-shadow:0 2px #2a6a2a,0 3px 6px #0003;background:linear-gradient(#5cb85c 0%,#3d8b3d 100%)!important}.key-present{color:#fff;box-shadow:0 2px #a07a10,0 3px 6px #0003;background:linear-gradient(#f0b429 0%,#c99a1d 100%)!important}.key-absent{color:#555;box-shadow:0 2px #1a1a28,0 3px 6px #0003;background:linear-gradient(#2e2e3e 0%,#222232 100%)!important}.key-misplaced{color:#fff;box-shadow:0 2px #4e3970,0 3px 6px #0003;background:linear-gradient(#8b68b8 0%,#6a4e94 100%)!important}@keyframes hintPulse{0%,to{box-shadow:0 2px #333,0 3px 6px #0003,0 0 8px #538d4e99}50%{box-shadow:0 2px #333,0 3px 6px #0003,0 0 16px #538d4ee6,0 0 24px #538d4e66}}.key-hint{border:2px solid #538d4eb3!important;animation:1.5s ease-in-out infinite hintPulse!important}.key.has-shift:after{content:"";background:#999;border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#0009;justify-content:center;align-items:flex-end;padding:0;transition:opacity .3s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-overlay.hidden{display:none}@keyframes modalSlideIn{0%{opacity:.5;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-content{padding:28px 24px;padding-bottom:max(28px, env(safe-area-inset-bottom));color:#eee;background:#2a2a3e;border-radius:20px 20px 0 0;width:100%;max-width:500px;max-height:85vh;animation:.35s cubic-bezier(.32,.72,0,1) both modalSlideIn;overflow-y:auto;box-shadow:0 -4px 30px #0006}.modal-content h2{text-align:center;margin-bottom:12px;font-family:Outfit,Noto Sans KR,sans-serif;font-size:22px;font-weight:900}.modal-content h3{color:#ccc;margin:16px 0 8px;font-size:16px}.modal-content p{color:#bbb;margin-bottom:8px;font-size:14px;line-height:1.6}.modal-close-btn{color:#fff;cursor:pointer;background:#538d4e;border:none;border-radius:8px;width:100%;margin-top:16px;padding:12px;font-family:Noto Sans KR,Outfit,sans-serif;font-size:16px;font-weight:700;transition:background .15s;display:block}.modal-close-btn:hover{background:#487a42}.help-section{margin:12px 0}.help-example{align-items:center;gap:12px;margin:8px 0;display:flex}.help-example .jamo-slot{flex:none;width:36px;height:36px;font-size:16px}.help-label{color:#bbb;font-size:14px}.help-footer{text-align:center;color:#999;margin-top:16px;font-size:13px}.stats-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.stat-item .stat-value{font-size:28px;font-weight:700}.stat-item .stat-label{color:#999;margin-top:2px;font-size:11px}.dist-chart{margin-bottom:16px}.dist-row{align-items:center;gap:6px;margin:4px 0;display:flex}.dist-label{text-align:center;width:16px;font-size:14px;font-weight:600}.dist-bar-container{flex:1;position:relative}.dist-bar{text-align:right;background:#3a3a4c;border-radius:4px;justify-content:flex-end;align-items:center;gap:4px;min-width:20px;padding:2px 6px;transition:width .6s cubic-bezier(.25,.8,.25,1);display:flex}@keyframes barGrow{0%{width:0%!important}}.dist-bar{animation:.8s cubic-bezier(.25,.8,.25,1) both barGrow}.dist-bar.dist-highlight{background:linear-gradient(90deg,#4caf50,#66bb6a);box-shadow:0 0 8px #4caf504d}.dist-count{font-size:13px;font-weight:600}.dist-pct{color:#fff9;margin-left:2px;font-size:10px}.share-btn{color:#fff;cursor:pointer;background:#538d4e;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;margin-bottom:8px;padding:12px;font-family:Noto Sans KR,Outfit,sans-serif;font-size:16px;font-weight:700;transition:background .15s;display:flex}.share-btn:hover{background:#487a42}.streak-celebration{text-align:center;color:#ffc312;background:linear-gradient(135deg,#ffc31233,#ff6b6b33);border-radius:8px;margin:8px 0;padding:8px;font-size:14px;font-weight:600}@media (max-width:380px){.cell{width:54px;height:54px}.cell-char{font-size:24px}.jamo-slot{font-size:15px}.modal-content{padding:16px 12px}.stats-grid{grid-template-columns:repeat(2,1fr)}.key{min-height:40px;font-size:13px}.keyboard-row{gap:2px}}@media (max-height:680px){.cell{width:52px;height:52px}.board,.board-row{gap:4px}.keyboard{gap:4px;padding:4px}.key{min-height:44px}}.duel-badge{text-align:center;color:#1a1a2e;box-sizing:border-box;background:linear-gradient(135deg,#ff6b35,#f7c948);border-radius:0 0 12px 12px;width:100%;max-width:500px;padding:6px 16px;font-size:14px;font-weight:700;animation:2s ease-in-out infinite duelBadgePulse}@keyframes duelBadgePulse{0%,to{opacity:1}50%{opacity:.85}}.duel-btn{font-weight:700;color:#1a1a2e!important;background:linear-gradient(135deg,#ff6b35,#f7c948)!important}.duel-result-modal{text-align:center}.duel-comparison{background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;gap:16px;margin:20px 0;padding:16px;display:flex}.duel-column{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.duel-column-title{color:#aaa;margin-bottom:4px;font-size:16px;font-weight:700}.duel-stat{padding:4px 0;font-size:15px}.duel-vs{color:#666;padding:0 8px;font-size:20px;font-weight:700}.duel-result{justify-content:center;align-items:center;gap:8px;margin:16px 0;display:flex}.duel-result-emoji{font-size:32px}.duel-result-text{font-size:22px;font-weight:700}.duel-actions{justify-content:center;gap:10px;margin:16px 0 8px;display:flex}.duel-actions .share-btn{flex:1;max-width:160px}
