/* Forest game table: readable Korean type, terrain surfaces, one clear action. */
:root{--forest-ink:#162019;--forest-base:#101a15;--forest-table:#1a2920;--forest-raised:#233429;--forest-line:#3b4a3b;--forest-paper:#f0efdf;--forest-muted:#b9c3b4;--forest-dim:#8f9d8d;--fern:#c3d598;--river:#9eb8ba;--field:#cab781;--danger:#f0a28e;--radius:12px}
*{box-sizing:border-box}
html{scroll-padding-top:90px}
body{margin:0;background:var(--forest-base);color:var(--forest-paper);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;font-size:15px;line-height:1.65;align-items:flex-start;min-height:100svh;overflow-x:hidden}
body,button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif}
body.app-environment{padding-top:env(safe-area-inset-top)}
#app{width:min(1120px,100%);max-width:1120px;margin:0 auto;padding:24px;background:none;border:0;border-radius:0;box-shadow:none}
.screen{width:100%;padding:24px;background:var(--forest-table);border:1px solid var(--forest-line);border-radius:var(--radius);margin:0 0 24px;overflow:visible}
h1,h2,h3,h4,.neon-text{color:var(--forest-paper);text-shadow:none;animation:none;line-height:1.3;letter-spacing:-.035em}
h1{font-size:clamp(32px,4.6vw,52px);margin:12px 0 20px;font-weight:800}
h2{font-size:23px;border:0;margin:0 0 20px;padding:0}
h3{font-size:16px;margin:0 0 16px;text-align:left}
button{min-height:44px;border:1px solid transparent;border-radius:8px;background:var(--fern);color:var(--forest-ink);padding:11px 18px;font-size:15px;font-weight:700;line-height:1.4;box-shadow:none;text-shadow:none;transition:background .15s,border-color .15s}
button:hover:not(:disabled){background:#d2dfb2;box-shadow:none;transform:none}
button:disabled{background:var(--forest-raised);border-color:var(--forest-line);color:var(--forest-dim);opacity:1;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--fern);outline-offset:3px}
a{color:var(--fern);text-underline-offset:4px}
input[type=text],input[type=password],textarea,select{max-width:100%;min-width:0;border:1px solid var(--forest-line);border-radius:8px;background:var(--forest-base);color:var(--forest-paper);font-size:16px;line-height:1.5;padding:12px;box-shadow:none}
input::placeholder,textarea::placeholder{color:var(--forest-dim)}
.site-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1120px;margin:0 auto 24px;padding:0 0 18px;border-bottom:1px solid var(--forest-line);font-size:13px}
.site-topbar a{text-decoration:none;color:var(--forest-muted)}
.site-topbar a:hover{color:var(--forest-paper)}
.site-brand{font-weight:750;letter-spacing:.01em}
#auth-screen{padding:0;border:0;background:none;max-width:none;width:100%;margin:0}
.intro-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:40px;padding:32px 0 40px}
.intro-copy{text-align:left;max-width:520px;min-width:0}
.intro-kicker{font-size:13px;font-weight:650;color:var(--fern);margin:0}
.intro-copy h1{text-align:left}
.intro-description{color:var(--forest-muted);font-size:17px;line-height:1.9;word-break:keep-all;margin:0 0 24px}
.intro-facts{display:flex;flex-wrap:wrap;gap:8px 24px;color:var(--forest-muted);font-size:13px;margin:20px 0 28px;padding:0;list-style:none}
.intro-facts strong{color:var(--forest-paper);font-size:18px;margin-right:5px}
#login-form{max-width:360px;width:100%;margin:0;padding:0;background:none;border:0;box-shadow:none}
#login-form h2{display:none}
#google-login-button{width:100%;margin:0;background:var(--fern);color:var(--forest-ink);min-height:52px;border-radius:8px;font-size:16px}
.intro-help{font-size:12px;color:var(--forest-dim);margin:12px 0 0;max-width:360px}
#logo-container.forest-roster{position:relative;min-width:0;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:28px;background:var(--forest-table);border:1px solid var(--forest-line);border-radius:16px;transform:rotate(2deg)}
.animal-tile{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;aspect-ratio:1 / 1.15;padding:14px 8px;border-radius:8px;background:var(--forest-paper);color:var(--forest-ink)}
.animal-tile:nth-child(3n+2){background:#d4dec1}
.animal-tile:nth-child(3n){background:#c8d8d7}
.animal-tile img{max-width:100%;min-width:0;width:70%;height:74px;object-fit:contain}
.animal-tile span{font-size:12px;font-weight:700}
.intro-note{margin:0;color:var(--forest-dim);font-size:12px;text-align:center;grid-column:1 / -1}
.quick-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;border-top:1px solid var(--forest-line);padding:28px 0}
.quick-rules article{min-width:0}
.quick-rules b{display:block;color:var(--fern);font-size:12px;margin-bottom:8px}
.quick-rules h2{font-size:17px;text-align:left;margin-bottom:8px}
.quick-rules p{font-size:14px;color:var(--forest-muted);word-break:keep-all;margin:0}
.intro-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;padding-top:20px;border-top:1px solid var(--forest-line)}
#nickname-form{max-width:440px;margin:24px auto;padding:24px;background:var(--forest-table);border:1px solid var(--forest-line);border-radius:12px}
.lobby-header{align-items:center;gap:16px;border-bottom:1px solid var(--forest-line);padding-bottom:18px;margin-bottom:24px}
.lobby-header h2{margin:0}
#room-list,#player-list{border:0;background:transparent;padding:0;margin-bottom:24px;min-width:0}
.room-item,.player-item{background:var(--forest-raised);border:1px solid var(--forest-line);border-radius:8px;box-shadow:none;padding:12px 16px;margin:8px 0;word-break:break-word;color:var(--forest-paper)}
#create-room-form{background:var(--forest-base);border:1px solid var(--forest-line);border-radius:10px;padding:20px;margin:16px 0}
.logout-btn,#leave-room-button,#back-to-lobby-button{background:transparent;border:1px solid var(--forest-line);color:var(--forest-muted)}
#player-count-info{background:var(--forest-base);border:1px solid var(--forest-line);color:var(--forest-muted)!important;box-shadow:none;font-size:14px;padding:12px;margin:16px 0}
#player-count-info:hover{transform:none;box-shadow:none}
#current-player-count{color:var(--fern)!important}
#add-bots-button{background:var(--forest-raised)!important;color:var(--forest-muted);border-color:var(--forest-line)}
#lobby-chat,#waiting-room-chat,#game-chat{border:1px solid var(--forest-line);background:var(--forest-base);padding:16px;border-radius:10px;margin-top:24px;min-width:0}
#lobby-chat-messages,#waiting-room-chat-messages,#game-chat-messages{background:transparent;border:0;line-height:1.7;font-size:14px;color:var(--forest-paper);padding:12px 0;height:220px;overflow-y:auto;overflow-wrap:anywhere}
#game-info{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;padding:16px;background:var(--forest-table);border:1px solid var(--forest-line);border-radius:10px;box-shadow:none;color:var(--forest-paper);margin:0 0 16px;grid-column:1 / -1}
#round-info{font-size:14px;color:var(--forest-muted)}
#timer{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700;color:var(--fern)}
#my-role{font-size:14px;color:var(--forest-paper)}
#my-role-icon{width:28px;height:28px;vertical-align:middle}
#game-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0;padding:0;background:none;min-width:0;margin:0 0 16px}
.region,#forest,#field,#river,#sky{width:auto;min-width:0;min-height:136px;height:auto;max-height:none;margin:0;padding:16px;border:1px solid var(--forest-line);border-radius:10px;font-size:15px;font-weight:600;box-shadow:none;text-shadow:none;background:var(--forest-raised);color:var(--forest-paper);display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}
#forest{border-top:3px solid #91b080}#field{border-top:3px solid var(--field)}#river{border-top:3px solid var(--river)}#sky{border-top:3px solid #adb5d0}
.region .player-marker{font-size:12px;line-height:1.5;background:var(--forest-base);color:var(--forest-paper)!important;border:1px solid var(--forest-line);border-radius:6px;box-shadow:none;padding:6px 8px;max-width:100%;overflow-wrap:anywhere;text-shadow:none}
#game-actions{position:relative;border:1px solid var(--forest-line);background:var(--forest-raised);padding:16px;border-radius:10px;margin:0 0 16px;min-width:0}
#game-actions button{margin:4px;max-width:100%;white-space:normal;background:var(--fern);color:var(--forest-ink);box-shadow:none}
#game-actions button:disabled{background:var(--forest-base);color:var(--forest-dim)}
#game-chat{margin:0}
#game-chat-input,#lobby-chat-input,#waiting-room-chat-input{width:100%}
#game-chat-send,#lobby-chat-send,#waiting-room-chat-send{width:100%;margin:0}
.floating-rules-btn,.floating-whisper-btn{box-shadow:none;width:44px;height:44px;min-height:44px;background:var(--forest-raised);border:1px solid var(--forest-line);color:var(--forest-paper);border-radius:50%;padding:0}
.floating-rules-btn{bottom:20px;right:20px}.floating-whisper-btn{bottom:76px;right:20px}
#rules-popup,.whisper-popup-content,.modal-content,.custom-alert-content{background:var(--forest-table);color:var(--forest-paper);border:1px solid var(--forest-line);border-radius:12px;box-shadow:none}
#rules-popup{max-width:min(720px,92vw);max-height:85dvh}
.error-message{color:var(--danger)!important}
#score-board{overflow-x:auto}#score-board table{width:100%;border-collapse:collapse;font-size:14px}
#score-board th,#score-board td{padding:12px;border-bottom:1px solid var(--forest-line);text-align:left;white-space:nowrap}
#winner-info{font-size:20px;line-height:1.6;color:var(--fern);word-break:keep-all}
.ad-container{max-width:100%;overflow:hidden;position:relative;clear:both;margin:32px auto 0;background:transparent;box-shadow:none}
.guide-page{display:block}.guide-wrap{width:min(820px,100%);margin:0 auto;padding:28px 24px 64px}.guide-wrap h1{font-size:36px;text-align:left}.guide-wrap h2{text-align:left;margin:36px 0 16px}.guide-wrap p,.guide-wrap li{color:var(--forest-muted)}.guide-wrap table{width:100%;border-collapse:collapse;font-size:14px}.guide-wrap th,.guide-wrap td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--forest-line)}.guide-wrap details{padding:16px 0;border-bottom:1px solid var(--forest-line)}.guide-wrap summary{cursor:pointer;font-weight:650}.guide-wrap .guide-actions{display:flex;gap:20px;flex-wrap:wrap;margin:28px 0}.guide-wrap .guide-actions a{padding:10px 18px;border:1px solid var(--forest-line);border-radius:8px;text-decoration:none}
@media(min-width:900px){body[data-screen=game-screen] #game-screen{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px;align-items:start}#game-info{grid-row:1}#game-map{grid-row:2;grid-column:1;margin:0}#game-actions{grid-row:3;grid-column:1;margin:0}#game-chat{grid-row:2 / 4;grid-column:2}#game-chat-messages{height:340px}}
@media(max-width:640px){body{font-size:14px}#app{padding:16px}.screen{padding:16px}.site-topbar{margin-bottom:20px;padding-bottom:14px;font-size:12px}.intro-layout{grid-template-columns:1fr;gap:24px;padding:12px 0 28px}.intro-description{font-size:15px;margin-bottom:12px}.intro-copy{max-width:none}h1{font-size:36px;margin:10px 0 16px}.intro-facts{margin:16px 0 20px}#login-form,.intro-help{max-width:none}.forest-roster{transform:none;padding:16px;gap:8px;grid-template-columns:repeat(6,minmax(0,1fr));border-radius:12px}.animal-tile{padding:8px 3px;aspect-ratio:auto;gap:8px}.animal-tile img{width:100%;height:44px}.animal-tile span{font-size:10px;word-break:keep-all}.intro-note{font-size:11px}.quick-rules{grid-template-columns:1fr;gap:22px;padding:24px 0}.quick-rules article{display:grid;grid-template-columns:28px 1fr;column-gap:12px}.quick-rules b{grid-row:1 / 3;font-size:16px}.quick-rules h2{font-size:16px}.quick-rules p{font-size:13px}.intro-bottom{gap:12px}.region,#forest,#field,#river,#sky{min-height:112px;padding:12px;font-size:14px}#game-info{gap:8px;padding:12px;top:0}#timer{font-size:14px}#my-role{flex-basis:100%}#game-actions{padding:12px}#game-chat-messages{height:200px}.guide-wrap{padding:20px 16px 64px}.guide-wrap h1{font-size:29px}.guide-wrap table{font-size:12px}.guide-wrap th,.guide-wrap td{padding:10px 5px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
