:root{font-family:Inter,Noto Sans SC,system-ui,sans-serif;color:#25463f;background:#f3f0e9;font-synthesis:none;font-weight:400;--safe-area-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;transition:.18s ease}button:disabled{opacity:.42;cursor:default}button:not(:disabled):hover{filter:brightness(.95);transform:translateY(-1px)}input,select{outline:none;border:1px solid #dadbd2;background:#fcfbf7;color:#25463f;border-radius:8px;padding:13px}input:focus,select:focus{border-color:#588678;box-shadow:0 0 0 3px #54847216}button{border:0;border-radius:8px}header{height:88px;border-bottom:1px solid #244b3615;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:25px;letter-spacing:4px;font-weight:700}.brand-icon{display:grid;place-items:center;background:#254a40;color:#e5c49a;border-radius:7px;width:36px;height:36px;letter-spacing:0}.brand-sub{font-size:12px;letter-spacing:2px;font-weight:400;margin-left:15px}.header-right{display:flex;align-items:center;gap:35px;font-size:12px}.live{display:flex;align-items:center;gap:8px}.live i{width:6px;height:6px;border-radius:50%;background:#789584}.turn-label{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;color:#667861;margin-bottom:15px}.turn-label i{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#789584}.turn-label i.mine{background:#3f8862}.turn-label strong{font-size:26px;font-weight:500;color:#2b5543;margin-left:8px}.turn-label small{font-size:12px}.turn-label span{font-size:10px}.turn-label .urgent{color:#bc7457}.text-button{background:transparent;color:#476258;font-size:12px;padding:8px}.welcome{max-width:1280px;margin:auto;min-height:calc(100vh - 148px);padding:56px 6vw 42px;display:grid;grid-template-columns:1.2fr 1fr;gap:8vw;align-items:center}.eyebrow{font-size:10px;letter-spacing:2.1px;color:#83908a;font-weight:600}h1{font-size:clamp(40px,4.6vw,64px);line-height:1.23;letter-spacing:-2px;font-weight:500;margin:26px 0 24px}h1 span{color:#b78355}.description{font-size:14px;color:#7b827b;line-height:2}.entry-card{padding:32px;background:#faf9f5;border:1px solid #fff;border-radius:16px;box-shadow:0 16px 65px #35463209}.card-number{font-size:10px;color:#999e94;letter-spacing:2px}.entry-card h2{font-weight:500;font-size:25px;margin:24px 0 10px}.entry-card p{font-size:12px;color:#879085;margin-bottom:30px}.entry-card label{display:block;font-size:11px;margin:18px 0}.entry-card label input,.entry-card label select{display:block;width:100%;margin-top:9px;font-size:13px}.primary,.secondary{width:100%;padding:14px 18px;margin-top:10px;text-align:center;font-size:13px}.primary{background:#264e42;color:#fff}.primary span{float:right}.secondary{background:transparent;border:1px solid #d7dcd3;color:#355c4e}.divider{border-top:1px solid #e3e4dc;margin:31px 0 24px;text-align:center}.divider span{font-size:10px;color:#8c9589;background:#faf9f5;padding:0 12px;position:relative;top:-9px}.join-row{display:flex;gap:8px}.join-row input{min-width:0;flex:1;font-size:12px}.join-row button{background:#e6ebe2;color:#345345;padding:10px 16px;font-size:12px;white-space:nowrap}.entry-card>small{font-size:10px;display:block;color:#9ca397;text-align:center;margin-top:22px}.demo-stack{height:185px;position:relative;width:300px;margin:5px 0 16px;transform:scale(.95)}.block{position:absolute;border-radius:4px;box-shadow:inset -9px -7px #00000013,4px 9px 12px #314f3420;transform:rotate(-4deg) skewY(-3deg)}.b1{width:128px;height:35px;background:#e6b16b;left:75px;bottom:34px}.b2{width:50px;height:55px;background:#91a8a0;left:100px;bottom:68px;transform:rotate(9deg)}.b3{width:111px;height:26px;background:#bd8f6d;left:74px;bottom:120px;transform:rotate(-8deg)}.b4{width:39px;height:39px;background:#d28b74;left:112px;bottom:148px;transform:rotate(12deg)}.b5{width:40px;height:40px;background:#ddc8a2;left:211px;bottom:105px;transform:rotate(30deg)}.base{position:absolute;width:237px;height:17px;left:27px;bottom:16px;background:#365747;border-radius:3px;box-shadow:0 12px 16px #243c3520}.demo-stack>span{position:absolute;bottom:-13px;left:71px;font-size:9px;letter-spacing:3px;color:#999f91}.facts{display:flex;gap:27px;font-size:10px;color:#9ba08f;margin-top:34px}.facts b{font-size:15px;color:#506e5d;display:block;margin-bottom:5px;font-weight:500}footer{height:60px;margin:0 5vw;border-top:1px solid #244b3615;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#97a090;position:relative;z-index:2}.game{height:100dvh;overflow:hidden}.game header{height:70px;background:#f3f0e9d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game footer{position:absolute;bottom:0;left:0;right:0;height:40px;pointer-events:none}.scene-wrap{position:absolute;inset:70px 0 180px 286px}.room-panel{position:absolute;top:88px;left:22px;bottom:58px;width:264px;padding:21px;background:#fcfbf7df;border:1px solid #fff;border-radius:14px;display:flex;flex-direction:column;overflow:auto;z-index:2}.panel-title{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.6px;color:#7b8b80}.room-code{background:transparent;padding:12px 0;text-align:left;color:#365748;letter-spacing:3px;font-size:23px}.room-code small{font-size:16px;color:#9aa99a}.phase{font-size:11px;color:#8d978a;margin:0 0 24px}.players{display:flex;flex-direction:column;gap:8px}.player{display:flex;align-items:center;gap:10px;border-radius:8px;padding:8px}.player.active{background:#e9eee2}.avatar{height:31px;width:31px;display:grid;place-items:center;background:#e6d2b5;border-radius:50%;font-size:12px}.a1{background:#ceded5}.a2{background:#ecd2c2}.a3{background:#d6d6e8}.player b{display:block;font-size:11px;font-weight:500}.player small{display:block;font-size:9px;color:#8d9788;margin-top:4px}.dot{width:5px;height:5px;border-radius:50%;background:#b4b5ab;margin-left:auto}.dot.online{background:#709e79}.stats{border-top:1px solid #e3e6dc;margin-top:24px;padding-top:16px;display:flex;flex-direction:column;gap:13px}.stats>div{display:flex;justify-content:space-between}.stats small{color:#879283;font-size:10px}.stats b{font-size:12px;font-weight:500}.waiting p{font-size:10px;line-height:1.8;color:#919b8a}.settings{margin-top:auto;padding-top:22px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#8a9787}.settings select{padding:4px;font-size:10px;background:none;border:0}.settings button{background:none;color:inherit;padding:3px;font-size:10px}.end-actions{margin-top:20px;display:flex;flex-direction:column;gap:8px}.end-actions button{font-size:10px;padding:8px;background:#eeefe7;color:#7b8977}.height-guide{position:absolute;top:30px;left:34px}.height-reading>span{display:block;font-size:10px;color:#8c978c;letter-spacing:1px}.height-reading strong{font-size:39px;font-weight:400;line-height:1.6}.height-reading small{font-size:14px;margin-left:5px}.best-height{margin-top:8px}.best-height strong{color:#71867c;font-size:20px;line-height:1.3}.target-line{position:absolute;top:40%;left:30px;right:30px;border-top:1px dashed #6e887522;pointer-events:none}.target-line span{font-size:9px;letter-spacing:2px;color:#9ca491;position:absolute;right:0;top:7px}.play-hud{position:absolute;bottom:65px;left:calc(50% + 130px);transform:translate(-50%);z-index:2;min-width:410px}.controls{display:flex;gap:7px;background:#ffffffaf;padding:8px;border-radius:14px;box-shadow:0 4px 20px #2d4b3210;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.control{background:#f1f1e9;padding:12px;min-width:65px;color:#486547;touch-action:none;-webkit-user-select:none;user-select:none}.control span{display:block;font-size:12px}.control kbd{display:block;font-size:8px;color:#8c9b86;margin-top:6px}.control.drop{background:#315744;color:#fff;min-width:95px;margin-left:4px}.control.drop kbd{color:#becdbc}.toast{position:absolute;top:82px;left:50%;transform:translate(-50%);background:#473f33;color:#fff;padding:12px 18px;font-size:12px;border-radius:8px;z-index:20;cursor:pointer;max-width:80vw}.toast span{margin-left:20px}.vote-card{position:absolute;top:90px;right:25px;z-index:6;width:280px;padding:20px;border:1px solid #fff;border-radius:12px;background:#faf9f2f5;box-shadow:0 10px 45px #27422b15}.vote-card h3{font-size:15px;font-weight:500}.vote-card p{font-size:11px;line-height:1.7;color:#7e8d77}.vote-card button{padding:10px 15px;margin-right:8px;background:#e3e9da;color:#46623e;font-size:11px}.result-backdrop{position:absolute;inset:70px 0 0;z-index:8;background:#e9ebe16b;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:grid;place-items:center}.result-card{width:420px;padding:35px;border-radius:18px;background:#faf9f3;text-align:center;box-shadow:0 20px 80px #34462818}.result-card h2{font-size:20px;font-weight:400}.result-card>strong{font-size:62px;font-weight:400}.result-card strong small{font-size:15px}.result-card>p{font-size:12px;color:#8c987f}.result-card table{border-collapse:collapse;width:100%;font-size:11px;margin:25px 0}.result-card td,.result-card th{padding:9px;text-align:left;border-bottom:1px solid #e5e7df;font-weight:400}.pending{position:absolute;left:50%;bottom:90px;background:#fbfaf3;padding:15px 25px;border-radius:10px;font-size:13px}.help{position:fixed;inset:20% auto auto 50%;transform:translate(-50%);width:min(90vw,470px);z-index:30;background:#fdfcf7;box-shadow:0 0 0 100vmax #21392c55,0 20px 90px #0002;border-radius:16px;padding:28px}.help>.text-button{float:right}.help h2{font-size:21px;font-weight:500}.help ol{padding-left:20px;font-size:13px;line-height:2.2;color:#6d7d63}@media(max-width:900px){.brand-sub{display:none}.welcome{gap:30px;padding:35px}.entry-card{padding:25px}.header-right{gap:8px}.game header{height:52px;padding:0 22px}.room-panel{top:64px;left:10px;width:215px;padding:15px;bottom:45px}.scene-wrap{inset:52px 0 150px 225px}.play-hud{left:calc(50% + 100px);bottom:48px;min-width:340px}.control{min-width:52px;padding:9px}.control.drop{min-width:77px}.height-guide{top:10px}.height-guide strong{font-size:28px}.stats{gap:8px;margin-top:12px;padding-top:10px}.phase{margin-bottom:10px}.player{padding:4px}.settings{padding-top:10px}.game footer{height:30px}.end-actions{margin-top:10px}.result-card{padding:20px}.vote-card{top:62px;width:260px}}@media(max-width:600px){.welcome{display:block;padding:30px 24px}.intro h1{font-size:44px}.demo-stack{display:none}.facts{margin:20px 0}.entry-card{margin-top:25px}.header-right .live{display:none}.brand{font-size:20px}header{height:70px}.landing footer{font-size:8px}.description{font-size:12px}.game{position:relative;height:100dvh;min-height:100svh;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}.game header{height:48px;padding:0 12px;z-index:5}.game .brand{gap:7px;font-size:18px;letter-spacing:2px}.game .brand-icon{width:28px;height:28px;border-radius:6px}.game .header-right{gap:4px}.game .header-right .live{display:flex;font-size:10px}.game .header-right .text-button{padding:6px;font-size:11px}.game .scene-wrap{inset:calc(186px + env(safe-area-inset-top)) 0 calc(112px + env(safe-area-inset-bottom))}.game .room-panel{top:calc(54px + env(safe-area-inset-top));left:8px;right:8px;bottom:auto;width:auto;max-height:124px;padding:6px 9px;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-items:center;column-gap:7px;row-gap:2px;overflow:hidden;border-radius:11px}.game .panel-title{grid-column:4;grid-row:1}.game .panel-title>span{display:none}.game .panel-title .text-button{padding:3px 2px;font-size:10px}.game .room-code{grid-column:1;grid-row:1;padding:3px 0;font-size:15px;letter-spacing:1.5px;white-space:nowrap}.game .room-code small{font-size:12px}.game .phase{grid-column:2 / 4;grid-row:1;margin:0;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game .players{grid-column:1 / -1;grid-row:2;flex-direction:row;gap:4px;overflow:hidden}.game .player{flex:0 1 auto;min-width:0;gap:5px;padding:2px 4px}.game .avatar{flex:0 0 22px;width:22px;height:22px;font-size:10px}.game .player b{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.game .player small,.game .player>i,.game .stats{display:none}.game .settings{grid-column:1 / -1;grid-row:4;display:flex;justify-content:flex-start;gap:12px;margin:0;padding:0;font-size:10px}.game .settings label{display:flex;align-items:center;gap:4px}.game .settings select{font-size:11px}.game .waiting{grid-column:1 / -1;grid-row:3;display:flex;align-items:center;gap:6px}.game .waiting p{display:none}.game .waiting .primary,.game .waiting .secondary{width:auto;margin:0;padding:6px 10px;font-size:10px}.game .end-actions{grid-column:1 / -1;grid-row:3;flex-direction:row;gap:5px;margin:0}.game .end-actions button{flex:1;min-width:0;padding:5px 3px;font-size:9px}.game .height-guide{top:12px;left:12px}.game .height-reading>span{font-size:9px}.game .height-reading strong{font-size:27px}.game .height-reading small{font-size:11px}.game .best-height{margin-top:3px}.game .best-height strong{font-size:16px;line-height:1.2}.game .target-line{left:10px;right:10px}.game .target-line span{font-size:8px;letter-spacing:1px}.game .play-hud{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;min-width:0;transform:none;padding:5px;border:1px solid #e3e4dc;border-radius:13px;background:#fbfaf3;box-shadow:0 4px 16px #2d4b3210}.game .turn-label{min-height:27px;gap:6px;margin-bottom:4px;color:#526c5c;font-size:10px;white-space:nowrap}.game .turn-label strong{margin-left:2px;font-size:18px}.game .turn-label span{font-size:9px}.game .controls{gap:4px;padding:5px;border-radius:12px;background:#fbfaf3;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.game .control,.game .control.drop{flex:1 1 0;min-width:0;min-height:48px;margin-left:0;padding:9px 3px;display:grid;place-items:center}.game .control span{font-size:11px}.game .control kbd{display:none}.game footer{display:none}.game .toast{top:calc(52px + env(safe-area-inset-top));max-width:calc(100vw - 24px)}.game .vote-card{top:calc(184px + env(safe-area-inset-top));right:8px;width:min(280px,calc(100vw - 16px))}.game .result-backdrop{inset:48px 0 0;padding:12px;overflow:auto}.game .result-card{width:min(100%,420px);padding:20px 16px}.game .help{top:calc(56px + env(safe-area-inset-top));left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;transform:none;overflow:auto;padding:20px}.game .help ol{line-height:1.8}.game .pending{top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%);max-width:calc(100vw - 24px);text-align:center}}
