.account-menu-wrap{position:fixed;top:16px;right:16px;z-index:35}.account-button{width:48px;height:48px;border:1px solid var(--button-line);border-radius:999px;background:var(--button-bg);color:var(--text);display:grid;place-items:center;cursor:pointer}.account-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.account-dropdown{position:absolute;top:52px;right:0;width:150px;border:1px solid var(--line);border-radius:10px;background:var(--button-bg);box-shadow:0 12px 24px var(--sidebar-shadow);overflow:hidden}.account-dropdown-item{width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;color:var(--text);padding:12px 14px;text-align:left;font-size:12px;cursor:pointer}.account-dropdown-item:last-child{border-bottom:none}.account-button:focus-visible,.account-dropdown-item:focus-visible{outline:2px solid var(--text);outline-offset:-2px}.sidebar{position:fixed;top:0;left:0;width:min(280px,78vw);height:100vh;background:var(--bg);border-right:1px solid var(--line);box-shadow:12px 0 24px var(--sidebar-shadow);transform:translate(-100%);transition:transform .2s ease;z-index:15;display:flex;flex-direction:column}.sidebar.open{transform:translate(0)}.sidebar-header-spacer{height:72px;border-bottom:1px solid var(--line);flex:0 0 auto}.sidebar-home-fixed{position:sticky;top:0;z-index:2;background:var(--bg);border-bottom:1px solid var(--line)}.sidebar-menu-list{flex:1 1 auto;overflow-y:auto}.menu-item{width:100%;border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;text-align:center;padding:15px 20px;font-size:15px;cursor:pointer}.menu-item+.menu-item{border-top:none}.menu-item.active{font-weight:700}.game-menu-toggle{position:relative;justify-content:center}.accordion-mark{position:absolute;right:24px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .16s ease}.accordion-mark.open{transform:rotate(225deg)}.submenu-list{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--button-bg) 70%,var(--bg))}.submenu-item{width:100%;border:none;border-top:1px solid var(--line);background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;padding:12px 20px 12px 34px;font-size:13px;cursor:pointer}.rainbow-menu-label{display:inline-flex;align-items:center;gap:0}.rainbow-char{display:inline-block;animation:rainbow-char-shift 2s linear infinite}@keyframes rainbow-char-shift{0%{color:#ef4444}20%{color:#eab308}40%{color:#22c55e}60%{color:#3b82f6}80%{color:#8b5cf6}to{color:#ef4444}}.submenu-item.active{font-weight:700}.home-icon{width:18px;height:18px;fill:currentColor}.gomoku-view{width:min(100%,720px)}.gomoku-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.status{font-size:14px;letter-spacing:.04em}.board-frame{width:min(92vw,660px);padding:10px;border:4px solid var(--board-line);background:var(--board);position:relative;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.board-frame.turn-black{border-color:#111827;box-shadow:inset 0 0 0 10px #111827,0 0 8px #11182724,0 0 18px #1118272e}.board-frame.turn-white{border-color:#cbd5e1;box-shadow:inset 0 0 0 10px #fff,0 0 8px #ffffff4d,0 0 20px #ffffff61}.page.dark .board-frame.turn-black{border-color:#34d399;box-shadow:inset 0 0 0 10px #34d399,0 0 10px #34d39952,0 0 22px #34d3996b}.page.dark .board-frame.turn-white{border-color:#cbd5e1;box-shadow:inset 0 0 0 10px #f8fafc,0 0 8px #f8fafc2e,0 0 22px #f8fafc3d}.board-frame.winner{border-color:transparent;box-shadow:inset 0 0 0 10px #ef4444,0 0 10px #ef444447,0 0 24px #ef444459;animation:board-rainbow-frame 1.8s linear infinite}@keyframes board-rainbow-frame{0%{border-color:#ef4444;box-shadow:inset 0 0 0 10px #ef4444,0 0 10px #ef444447,0 0 24px #ef444459}20%{border-color:#f59e0b;box-shadow:inset 0 0 0 10px #f59e0b,0 0 10px #f59e0b47,0 0 24px #f59e0b59}40%{border-color:#22c55e;box-shadow:inset 0 0 0 10px #22c55e,0 0 10px #22c55e47,0 0 24px #22c55e59}60%{border-color:#3b82f6;box-shadow:inset 0 0 0 10px #3b82f6,0 0 10px #3b82f647,0 0 24px #3b82f659}80%{border-color:#a855f7;box-shadow:inset 0 0 0 10px #a855f7,0 0 10px #a855f747,0 0 24px #a855f759}to{border-color:#ef4444;box-shadow:inset 0 0 0 10px #ef4444,0 0 10px #ef444447,0 0 24px #ef444459}}.board{position:relative;width:100%;aspect-ratio:1 / 1;background:var(--board);border:1px solid var(--board-line);overflow:hidden}.grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.grid-lines line{stroke:var(--board-line);stroke-width:.25}.point{position:absolute;width:28px;height:28px;border:none;background:transparent;cursor:pointer;transform:translate(-50%,-50%)}.point:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:50%;background:transparent;transition:background .12s ease}.point:hover:before{background:#6b728029}.stone{position:absolute;width:18px;height:18px;border-radius:999px;top:50%;left:50%;transform:translate(-50%,-50%)}.stone.black{background:#111827}.stone.white{background:#fff;border:1px solid #9ca3af}.page.dark .stone.black{background:#22c55e;box-shadow:0 0 8px #22c55ebf,0 0 18px #22c55e8c,0 0 30px #22c55e59}.page.dark .stone.white{box-shadow:0 0 8px #ffffffc7,0 0 16px #ffffff8f,0 0 26px #ffffff57}.home-empty{width:100%;min-height:120px}.invite-account-list{display:grid;gap:10px}.invite-account-item{border:1px solid var(--line);border-radius:12px;background:var(--button-bg);padding:12px;display:grid;gap:8px}.invite-account-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.invite-account-head span{font-size:12px;color:color-mix(in srgb,var(--text) 65%,transparent)}@media (max-width: 640px){.invite-account-head{flex-direction:column;align-items:flex-start}}.bubble-page{width:min(100%,1040px);min-height:calc(100vh - 160px);padding-bottom:164px;display:grid}.bubble-stage-card{position:relative;min-height:calc(100vh - 180px);border:1px solid color-mix(in srgb,var(--line) 84%,transparent);border-radius:36px;background:radial-gradient(circle at top left,color-mix(in srgb,#c4b5fd 18%,transparent),transparent 38%),radial-gradient(circle at top right,color-mix(in srgb,#7dd3fc 14%,transparent),transparent 30%),linear-gradient(180deg,color-mix(in srgb,var(--button-bg) 92%,white),color-mix(in srgb,var(--bg) 94%,#dbeafe 6%));box-shadow:0 26px 60px color-mix(in srgb,var(--sidebar-shadow) 65%,transparent);overflow:hidden}.bubble-stage-header{position:relative;z-index:2;padding:34px 34px 0;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.bubble-stage-kicker{margin-bottom:8px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--text) 54%,transparent)}.bubble-stage-header h1{max-width:620px;font-size:clamp(26px,3.8vw,42px);line-height:1.14;word-break:keep-all}.bubble-stage-status{max-width:240px;padding-top:10px;font-size:13px;line-height:1.5;text-align:right;color:color-mix(in srgb,var(--text) 70%,transparent)}.bubble-stage{position:relative;min-height:calc(100vh - 270px);padding:24px 22px 28px;overflow:hidden}.bubble-stage-glow{position:absolute;inset:auto;width:240px;height:240px;border-radius:999px;filter:blur(24px);opacity:.52}.bubble-stage-glow-left{left:-30px;bottom:38px;background:color-mix(in srgb,#38bdf8 28%,transparent)}.bubble-stage-glow-right{right:40px;top:110px;background:color-mix(in srgb,#f9a8d4 24%,transparent)}.bubble-stage-topline{position:absolute;top:26px;left:28px;right:28px;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 22%,transparent),transparent)}.bubble-stage-empty{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(100%,360px);text-align:center;color:color-mix(in srgb,var(--text) 70%,transparent)}.bubble-stage-empty strong{font-size:18px;color:var(--text)}.thought-bubble{position:absolute;left:var(--bubble-left);bottom:-6%;width:var(--bubble-size);transform:translate(-50%);animation:bubble-rise var(--bubble-rise-duration) ease-in forwards;will-change:transform,opacity,bottom}.thought-bubble-sway{animation:bubble-sway var(--bubble-sway-duration) ease-in-out infinite alternate;transform-origin:center}.thought-bubble-chip{width:100%;min-height:62px;padding:18px 20px;border:1px solid color-mix(in srgb,white 62%,var(--line));border-radius:999px;background:color-mix(in srgb,white 82%,var(--button-bg));box-shadow:0 18px 40px color-mix(in srgb,var(--sidebar-shadow) 40%,transparent),inset 0 1px #ffffffe0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:grid;place-items:center}.thought-bubble-chip span{display:block;width:100%;font-size:15px;line-height:1.45;text-align:center;word-break:break-word}.thought-bubble.popping{animation:bubble-pop .62s ease-out forwards}.thought-bubble.popping .thought-bubble-sway{animation:none}.thought-bubble.popping .thought-bubble-chip{box-shadow:0 12px 20px color-mix(in srgb,var(--sidebar-shadow) 18%,transparent),inset 0 0 0 1px color-mix(in srgb,white 70%,transparent)}.bubble-composer-shell{position:fixed;left:50%;bottom:20px;width:min(calc(100vw - 32px),920px);transform:translate(-50%);z-index:12}.bubble-composer{width:100%;padding:12px 14px 12px 24px;border-radius:999px;background:color-mix(in srgb,white 86%,var(--button-bg));box-shadow:0 24px 44px color-mix(in srgb,var(--sidebar-shadow) 24%,transparent),inset 0 0 0 1px color-mix(in srgb,white 40%,var(--line));display:flex;align-items:flex-end;gap:14px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bubble-composer-input{flex:1;min-width:0;max-height:124px;border:none;background:transparent;color:var(--text);font:inherit;font-size:clamp(18px,2.4vw,28px);line-height:1.35;resize:none;overflow-y:auto}.bubble-composer-input::placeholder{color:color-mix(in srgb,var(--text) 34%,transparent)}.bubble-composer-input:focus{outline:none}.bubble-send-button{flex:0 0 auto;width:74px;height:74px;border:none;border-radius:999px;background:#101010;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .18s ease,opacity .18s ease}.bubble-send-button:hover:not(:disabled){transform:translateY(-1px) scale(1.02)}.bubble-send-button:disabled{opacity:.42;cursor:not-allowed}.bubble-send-button svg{width:34px;height:34px;fill:currentColor}@keyframes bubble-rise{0%{opacity:0;bottom:0;transform:translate(-50%) translate3d(0,24px,0) scale(.94)}12%{opacity:1;transform:translate(-50%) translateZ(0) scale(1)}72%{opacity:.98;transform:translate(calc(-50% + var(--bubble-drift))) translate3d(0,-10px,0) scale(1.02) rotate(var(--bubble-tilt))}to{opacity:.96;bottom:88%;transform:translate(calc(-50% + calc(var(--bubble-drift) * .68))) translate3d(0,-18px,0) scale(1.04) rotate(calc(var(--bubble-tilt) * -.4))}}@keyframes bubble-sway{0%{transform:translateZ(0) rotate(-1.2deg) scale(.992)}50%{transform:translate3d(0,-4px,0) rotate(.8deg) scale(1.01)}to{transform:translate3d(0,2px,0) rotate(1.8deg) scale(1.018)}}@keyframes bubble-pop{0%{opacity:.98;transform:translate(calc(-50% + calc(var(--bubble-drift) * .68))) scale(1.05)}30%{opacity:1;transform:translate(calc(-50% + calc(var(--bubble-drift) * .68))) translate3d(0,-6px,0) scale(1.12)}to{opacity:0;transform:translate(calc(-50% + calc(var(--bubble-drift) * .68) + var(--bubble-pop-x))) translate3d(0,var(--bubble-pop-y),0) scale(1.22);filter:blur(5px)}}@media (max-width: 760px){.bubble-page{width:100%;min-height:calc(100dvh - 120px);padding-bottom:112px}.bubble-stage-card{min-height:calc(100dvh - 134px);border-radius:24px}.bubble-stage-header{padding:22px 22px 0;display:grid;gap:16px}.bubble-stage-kicker{margin-bottom:6px;font-size:11px;letter-spacing:.08em}.bubble-stage-header h1{max-width:310px;font-size:30px;line-height:1.18}.bubble-stage-status{max-width:none;padding-top:0;font-size:14px;text-align:left}.bubble-stage{min-height:calc(100dvh - 274px);padding:14px}.bubble-stage-topline{top:18px;left:22px;right:22px}.bubble-stage-empty{width:min(100%,310px)}.bubble-stage-empty strong{font-size:20px;line-height:1.35;word-break:keep-all}.bubble-composer-shell{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 22px)}.bubble-composer{min-height:70px;padding:9px 9px 9px 18px;gap:8px}.bubble-composer-input{max-height:88px;font-size:20px;line-height:1.3}.bubble-send-button{width:54px;height:54px}.bubble-send-button svg{width:28px;height:28px}.thought-bubble-chip span{font-size:14px}}@media (max-width: 640px){.page:has(.bubble-page) .content{padding:64px 10px 0}.page:has(.bubble-page) .theme-toggle{right:14px;bottom:calc(88px + env(safe-area-inset-bottom));padding:8px 12px;z-index:11}.page:has(.bubble-composer-input:focus) .theme-toggle{display:none}}@media (max-width: 380px){.bubble-stage-header h1{max-width:280px;font-size:27px}.bubble-stage-empty strong,.bubble-composer-input{font-size:18px}}.poem-shell,.poem-detail{border:1px solid var(--line);border-radius:12px;background:var(--button-bg);padding:16px;display:grid;gap:12px}.poem-shell-head,.poem-detail-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.poem-shell-actions{display:flex;align-items:center;gap:8px}.poem-action-menu{position:relative}.poem-action-dropdown{position:absolute;top:42px;right:0;min-width:148px;border:1px solid var(--line);border-radius:12px;background:var(--button-bg);box-shadow:0 12px 24px var(--sidebar-shadow);overflow:hidden;z-index:20}.poem-action-item{width:100%;border:none;background:transparent;color:var(--text);padding:12px 14px;text-align:left;font-size:13px;cursor:pointer}.poem-action-item-danger{color:#ef4444}.poem-action-divider{height:1px;background:var(--line);margin:4px 0}.poem-add-button{width:34px;height:34px;border:1px solid var(--line);background:var(--bg);font-size:22px;line-height:1;cursor:pointer}.poem-composer{width:100%;min-width:0;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:10px}.poem-composer-standalone{border-top:none;padding-top:0}.poem-composer-title,.poem-detail-title{width:100%;min-width:0;text-align:center;font-size:24px;font-weight:700}.poem-detail-title{margin:0}.poem-composer-author,.poem-detail-author{justify-self:end;font-size:13px;color:color-mix(in srgb,var(--text) 68%,transparent)}.poem-composer-content{width:100%;min-width:0;min-height:260px;resize:vertical;white-space:pre-wrap}.poem-composer-actions{display:flex;justify-content:flex-end;gap:8px}.poem-list{display:grid;gap:10px}.poem-list-item{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--button-bg);color:var(--text);padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;cursor:pointer}.poem-list-item strong{color:inherit;font-size:15px}.poem-list-item time{font-size:12px;color:color-mix(in srgb,var(--text) 62%,transparent);flex-shrink:0}.poem-detail-content{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:15px;line-height:1.7}@media (max-width: 640px){.poem-list-item{flex-direction:column;align-items:flex-start}.poem-shell-head,.poem-detail-actions{width:100%}.poem-composer-actions{width:100%;justify-content:space-between}.poem-shell{padding:14px}.poem-composer{padding-top:12px}.poem-composer-title,.poem-detail-title{font-size:20px}}.suika-shell{width:min(100%,420px);display:grid;gap:10px}.suika-meta{display:flex;align-items:center;justify-content:space-between}.suika-field{position:relative;width:min(100%,360px);height:560px;border:1px solid var(--line);border-radius:14px;touch-action:manipulation;background:color-mix(in srgb,var(--bg) 84%,#f8fafc);overflow:hidden;cursor:crosshair}.suika-top-line{position:absolute;left:0;right:0;top:32px;border-top:2px dashed color-mix(in srgb,var(--text) 25%,transparent)}.suika-preview{position:absolute;border-radius:999px;opacity:.45}.suika-ball{position:absolute;border-radius:999px;box-shadow:inset -8px -8px 12px #0000001f}.page.dark .suika-ball{box-shadow:inset -8px -8px 12px #00000038,0 0 9px color-mix(in srgb,var(--ball-glow, #ffffff) 54%,#ffffff 22%),0 0 18px color-mix(in srgb,var(--ball-glow, #ffffff) 40%,transparent),0 0 30px color-mix(in srgb,var(--ball-glow, #ffffff) 26%,transparent);filter:saturate(1.12) brightness(1.03);animation:suika-glitter 1.9s ease-in-out infinite alternate}@keyframes suika-glitter{0%{transform:translateZ(0) scale(1);opacity:.94}to{transform:translateZ(0) scale(1.015);opacity:.98}}.suika-field.over{outline:2px solid #dc2626}.suika-over{position:absolute;top:8px;left:50%;transform:translate(-50%);border-radius:999px;border:1px solid #dc2626;background:#fee2e2;color:#991b1b;padding:4px 10px;font-size:12px;font-weight:700}:root{font-family:Noto Sans KR,Apple SD Gothic Neo,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}.page{--bg: #ffffff;--text: #111827;--line: #e5e7eb;--sidebar-shadow: rgba(17, 24, 39, .15);--board: #f3f4f6;--board-line: #d1d5db;--button-bg: #ffffff;--button-line: #d1d5db;min-height:100vh;position:relative;overflow:hidden;background:var(--bg);color:var(--text)}.page.dark{--bg: #0b1220;--text: #f3f4f6;--line: #2b3548;--sidebar-shadow: rgba(0, 0, 0, .35);--board: #1a2438;--board-line: #3b4a68;--button-bg: #111827;--button-line: #374151}.menu-button{position:absolute;top:16px;left:16px;width:44px;height:44px;border:1px solid transparent;border-radius:10px;background:transparent;display:inline-flex;flex-direction:column;justify-content:center;gap:5px;padding:10px;cursor:pointer;transition:transform .2s ease;z-index:20}.menu-button.open{transform:rotate(90deg)}.menu-button span{display:block;width:100%;height:2px;background:var(--text);border-radius:999px}.menu-button:focus-visible{outline:2px solid var(--text);outline-offset:2px}.content{min-height:100vh;padding:80px 20px;display:flex;justify-content:center;align-items:flex-start}.muted-message{font-size:13px;color:color-mix(in srgb,var(--text) 65%,transparent)}.status-warning{border:1px solid #f59e0b;background:color-mix(in srgb,#f59e0b 16%,var(--button-bg));color:var(--text);border-radius:8px;padding:8px 10px;font-size:12px}.form-input{border:1px solid var(--button-line);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 12px;min-height:42px;max-height:130px;resize:vertical;font:inherit}.form-input:focus-visible{outline:2px solid var(--text);outline-offset:1px}.primary-button{border:1px solid var(--button-line);background:var(--button-bg);color:var(--text);border-radius:10px;padding:10px 14px;height:42px;cursor:pointer}.primary-button:disabled{opacity:.45;cursor:not-allowed}.text-button{border:1px solid var(--button-line);background:var(--button-bg);color:var(--text);border-radius:8px;padding:8px 12px;font-size:12px;cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;padding:16px;z-index:40}.modal-card{width:min(100%,420px);border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:16px;display:grid;gap:10px}.modal-card h3{font-size:18px}.modal-card p{font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.auth-shell{width:min(100%,900px);display:grid;gap:14px}.auth-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--button-bg);display:grid;gap:10px}.auth-card h2{font-size:17px}.auth-logged-in{width:min(100%,420px)}.form-stack{display:grid;gap:8px}.auth-actions{display:flex;gap:8px;align-items:center}.board-shell{width:min(100%,900px);display:grid;gap:12px}.icon-button{width:34px;height:34px;border:1px solid var(--button-line);background:var(--button-bg);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.icon-button img{width:20px;height:20px;object-fit:contain}.page.dark .icon-button img{filter:brightness(0) invert(1)}.icon-button:disabled{opacity:.45;cursor:not-allowed}.theme-toggle{position:fixed;right:18px;bottom:18px;border:1px solid var(--button-line);background:var(--button-bg);color:var(--text);border-radius:999px;padding:10px 14px;font-size:12px;letter-spacing:.04em;cursor:pointer;z-index:30}@media (max-width: 640px){.content{padding-top:72px}}
