:root{font-family:Inter,Pretendard,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#e7ece9;background:#101b1f;font-size:16px;color-scheme:dark;--lime:#c8ee96;--muted:#a4b4b9;--line:#354449}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{border:1px solid var(--line);background:#233339;color:#eef4ef;border-radius:9px;padding:10px 14px;cursor:pointer;transition:.15s}button:hover:not(:disabled){background:#35494f;border-color:#a1c78c}button:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:3px}button:disabled{opacity:.38;cursor:default}.primary{background:var(--lime);color:#192821;border-color:var(--lime);font-weight:750}.primary:hover:not(:disabled){background:#ddffb1}header{padding:22px 32px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;gap:13px;align-items:center}.aperture{font-size:46px;color:var(--lime);line-height:1}h1{font-size:22px;letter-spacing:-.8px;margin:0 0 5px}small{font-size:12px;letter-spacing:1.4px;color:var(--muted)}nav{display:flex;gap:8px}main{max-width:1600px;margin:auto;padding:24px 32px}.topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:20px}.topline h2{font-size:25px;margin:0 0 6px}.muted{color:var(--muted);font-size:14px;line-height:1.6}.layout{display:grid;grid-template-columns:minmax(440px,1.1fr) minmax(390px,1fr);gap:24px}.panel{background:#18272c;border:1px solid var(--line);border-radius:16px;padding:20px}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}h3{margin:0;font-size:17px}.tag{font-size:13px;background:#304047;border-radius:20px;padding:5px 10px;color:#d2dfd8}.players{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:10px;margin-bottom:18px}.player{padding:13px;text-align:left;border-radius:12px}.player.active{border-color:var(--lime);box-shadow:inset 0 3px var(--lime)}.player.viewed{background:#2a3d42}.player b{display:block;margin-bottom:10px}.player span{font-size:14px;color:#c9d6d5}.score{float:right;font-size:22px!important;color:var(--lime)!important}.board{width:100%;max-height:550px;display:block}.board text{font-family:inherit;pointer-events:none}.cell{cursor:pointer}.cell:hover circle{stroke:#e2ffb8;stroke-width:3}.cell:focus{outline:none}.cell:focus circle{stroke:#e2ffb8;stroke-width:3}.boardfooter{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:8px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.controlgroup{background:#111f24;border-radius:10px;padding:12px}.controlgroup p{margin:0 0 9px;color:#b9c9ce;font-size:14px}.controlgroup div{display:flex;gap:7px}.controlgroup button{flex:1}.notice{padding:13px 15px;background:#263d33;border:1px solid #48634a;border-radius:10px;margin-bottom:15px;line-height:1.6;font-size:14px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card{background:#f1f3e9;color:#213337;border-radius:12px;padding:14px;position:relative;border:2px solid transparent;min-width:0}.card.ready{border-color:var(--lime);box-shadow:0 0 0 2px #759256}.cardtop{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#67736e}.points{font-size:21px;font-weight:800;color:#2b4b36}.rare .points{color:#88511d}.animals{display:flex;align-items:center;justify-content:center;gap:7px;margin:17px 0}.animal{text-align:center;min-width:0}.animal span{display:block;font-size:34px;line-height:1.3}.animal b{font-size:13px;white-space:nowrap}.arrow{color:#889186;font-size:17px}.conditions{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.condition{font-size:13px;background:#e1e6dc;padding:5px 7px;border-radius:5px}.checks{font-size:12px;color:#647466;line-height:1.7;margin-bottom:8px}.ok{color:#267548}.bad{color:#9c563d}.card button{width:100%;padding:8px;font-size:14px}.market{margin-top:24px}.market .cards{grid-template-columns:repeat(5,minmax(0,1fr))}.market .animals{gap:4px}.market .animal span{font-size:27px}.market .card{padding:11px}.sectiontitle{display:flex;justify-content:space-between;align-items:center;margin:0 0 14px}.goals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.goal{padding:12px;border:1px solid var(--line);border-radius:10px;font-size:14px;line-height:1.6}.goal b{display:block;color:var(--lime);font-size:13px}.history{max-height:180px;overflow:auto;font-size:14px;color:#b0c0c5;line-height:1.8}.history div{border-bottom:1px solid #2d3d42;padding:5px 0}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.step{display:inline-block;width:12px;height:12px;background:var(--lime);border-radius:50%;margin-right:5px}.step.used{background:#445356}.empty{padding:26px;text-align:center;color:var(--muted)}dialog{width:min(1080px,94vw);max-height:90vh;border:1px solid #56685e;border-radius:18px;background:#18272c;color:#e8efe9;padding:28px}dialog::backdrop{background:#081216cc;backdrop-filter:blur(5px)}dialog h2{margin-top:0}dialog p,dialog li{line-height:1.8}dialog .close{position:sticky;bottom:0;margin-top:20px;background:#364c41}dialog .cards{grid-template-columns:repeat(4,1fr)}label{display:block;margin:18px 0 8px}select{padding:12px;border:1px solid #61766b;border-radius:8px;background:#20332c;width:100%;color:#edf3e8}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 24px;border-radius:12px;background:#d9eec4;color:#1a3325;box-shadow:0 6px 30px #0006;opacity:0;pointer-events:none;transition:.2s;z-index:5}#toast.show{opacity:1}table{width:100%;border-collapse:collapse;font-size:14px}td,th{border-bottom:1px solid var(--line);padding:10px;text-align:left}.gold{color:var(--lime)}.album{margin-top:18px}details{margin:12px 0}summary{cursor:pointer;color:#c6d9cd}.stats{display:flex;gap:18px;flex-wrap:wrap;font-size:14px}.setupgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:1000px){.layout{grid-template-columns:1fr}.board{max-height:540px}.market .cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){header{padding:16px;align-items:flex-start;flex-direction:column}nav{width:100%;flex-wrap:wrap}nav button{padding:8px 10px;font-size:14px}main{padding:18px 12px}.topline{align-items:flex-start}.players{grid-template-columns:repeat(2,1fr)}.panel{padding:12px}.market .cards,dialog .cards{grid-template-columns:repeat(2,1fr)}.goals{grid-template-columns:1fr}.setupgrid{grid-template-columns:1fr}.card{padding:10px}.animals{gap:4px}.animal span{font-size:29px}.controls{gap:8px}.controlgroup{padding:9px}.controlgroup button{padding:8px}.boardfooter{flex-wrap:wrap}}
#onlinebar{max-width:1600px;margin:auto;padding:13px 32px;background:#243a31;border-bottom:1px solid #3f594c;display:flex;align-items:center;justify-content:space-between;gap:14px}#onlinebar>div{display:flex;align-items:center;gap:14px;flex-wrap:wrap}#onlinebar strong{letter-spacing:2px}#onlinebar span{font-size:14px;color:#c6d8cc}.netstatus{font-size:13px!important}.lobby{max-width:850px;margin:12px auto;text-align:center;padding:30px}.lobby .sectiontitle{text-align:left}.roomcode{font-size:clamp(30px,6vw,54px);font-weight:800;letter-spacing:7px;color:var(--lime);margin:26px 0 18px}.lobbyseats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0}.lobbyseat{border:1px dashed #53665c;border-radius:12px;padding:22px 10px;display:flex;flex-direction:column;gap:12px}.lobbyseat.occupied{border-style:solid;background:#273c32}.lobbyseat>span{font-size:30px}.lobbyseat b{overflow-wrap:anywhere}.lobbyseat small{letter-spacing:0}.onlinechoices{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:24px}.onlinechoices section{border:1px solid var(--line);padding:22px;border-radius:12px}.onlinechoices button{margin-top:22px;width:100%}input{font:inherit;color:inherit;background:#20332c;border:1px solid #61766b;border-radius:8px;padding:12px;width:100%}#online-error{color:#f3b59b;min-height:24px}.privatehand{grid-column:1/-1;line-height:2;padding:50px 12px;border:1px dashed #46604f;border-radius:12px}@media(max-width:650px){#onlinebar{padding:14px;align-items:flex-start;flex-direction:column}.lobby{padding:20px 12px}.lobbyseats{grid-template-columns:repeat(2,1fr)}.onlinechoices{grid-template-columns:1fr}.roomcode{letter-spacing:4px}}
#room-chat{position:fixed;right:22px;bottom:18px;width:350px;max-width:calc(100vw - 24px);z-index:4;border:1px solid #62805e;border-radius:14px;background:#182a28;box-shadow:0 10px 40px #0008;overflow:hidden}.chat-toggle{width:100%;border:0;border-radius:0;background:#2c4739;text-align:left;font-weight:700;padding:15px 18px;display:flex;align-items:center;gap:8px}.chat-chevron{margin-left:auto;font-size:13px;font-weight:400}#chat-unread:not(:empty){background:var(--lime);color:#183023;font-size:12px;border-radius:20px;min-width:20px;text-align:center;padding:2px 5px}.chat-info{padding:10px 14px;font-size:12px;color:#afc3b8;border-bottom:1px solid #354b40}#chat-messages{height:270px;max-height:38dvh;overflow:auto;padding:14px;overscroll-behavior:contain}.chat-message{max-width:92%;margin-bottom:15px}.chat-message.mine{margin-left:auto}.chat-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#a9c0b4;padding:0 3px}.chat-meta b{overflow-wrap:anywhere}.chat-meta time{white-space:nowrap}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0;padding:10px 12px;background:#2e423b;border-radius:4px 12px 12px;font-size:14px;line-height:1.6;color:#edf4ea}.chat-message.mine p{background:#c4e797;color:#1f3224;border-radius:12px 4px 12px 12px}.chat-empty{text-align:center;color:#b1c1b7;font-size:14px;line-height:1.8;padding:35px 0}#chat-form{padding:12px;border-top:1px solid #3c5546}#chat-input{width:100%;resize:none;background:#10221d;color:#eff5ec;border:1px solid #577560;border-radius:8px;font:inherit;font-size:16px;padding:10px}#chat-input:focus{outline:2px solid var(--lime)}.chat-label{font-size:13px;margin:0 0 6px}.chat-compose-footer{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:8px}.chat-compose-footer small{font-size:12px;letter-spacing:0}.chat-compose-footer button{padding:7px 13px;font-size:14px}#chat-error{font-size:12px;line-height:1.4;color:#e9bf9c;margin:6px 0 0}#chat-error:empty{display:none}@media(max-width:620px){#room-chat{right:12px;bottom:12px;width:calc(100vw - 24px)}.chat-toggle{padding:12px 16px}}
