:root{--glass: rgba(255, 252, 244, .78);--glass-strong: rgba(255, 252, 244, .92);--ink: #3a2a1a;--ink-soft: #6d5843;--gold: #f2b134;--gold-deep: #c98a12;--line: rgba(120, 85, 40, .18);--shadow: 0 10px 30px rgba(30, 40, 60, .22), 0 2px 6px rgba(30, 40, 60, .12);--wood: linear-gradient(160deg, #4caf50, #1f6f2c);--brick: linear-gradient(160deg, #ef7b52, #b0442a);--sheep: linear-gradient(160deg, #d6f5a8, #86c34a);--wheat: linear-gradient(160deg, #ffe08a, #e2a72e);--ore: linear-gradient(160deg, #c3cfdd, #6f7f94)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#9fd3f0;font-family:Fredoka,system-ui,sans-serif;color:var(--ink);user-select:none;-webkit-user-select:none}#app canvas{display:block}button{font-family:inherit;cursor:pointer;border:none}button:disabled{cursor:not-allowed}.hidden{display:none!important}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud>*{pointer-events:auto}.panel{background:var(--glass);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow);border-radius:18px}#players{position:absolute;top:16px;left:16px;display:flex;flex-direction:column;gap:10px;width:250px}.pcard{position:relative;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:10px;padding:10px 12px;transition:transform .35s cubic-bezier(.2,1.4,.4,1),box-shadow .3s}.pcard.active{transform:translate(8px) scale(1.03);box-shadow:0 0 0 3px var(--pc),0 12px 34px #1e283c4d}.pcard.active:after{content:"";position:absolute;left:-10px;top:50%;width:0;height:0;border:7px solid transparent;border-left-color:var(--pc);transform:translateY(-50%);animation:nudge 1s ease-in-out infinite}@keyframes nudge{50%{left:-6px}}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:22px;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.7),transparent 45%),var(--pc);box-shadow:inset 0 -4px #0000002e,0 3px 8px #0003;border:2px solid #fff}.pname{font-weight:600;font-size:15px;line-height:1.1}.pstats{display:flex;gap:8px;font-size:12px;color:var(--ink-soft);margin-top:4px;flex-wrap:wrap}.pstats span{white-space:nowrap}.vp{font-family:Cinzel Decorative,serif;font-weight:900;font-size:24px;color:var(--gold-deep);text-shadow:0 1px 0 #fff;text-align:center;line-height:1}.vp small{display:block;font-family:Fredoka;font-size:10px;font-weight:500;color:var(--ink-soft)}.badges{display:flex;gap:4px;margin-top:4px}.badge{font-size:11px;padding:1px 7px;border-radius:99px;background:linear-gradient(135deg,#ffe7a3,#f2b134);color:#6a4300;font-weight:600;box-shadow:0 1px 3px #00000026}.thinking{font-size:11px;color:var(--ink-soft);animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.3}}#banner{position:absolute;top:16px;left:50%;transform:translate(-50%);text-align:center;padding:10px 26px;border-radius:99px;background:var(--glass-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8);pointer-events:none!important;transition:all .3s;max-width:calc(100vw - 600px);min-width:260px}#banner-text{font-weight:700;font-size:17px}#banner-sub{font-size:13px;color:var(--ink-soft)}#banner.pop{animation:pop .5s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:translate(-50%) scale(.85)}to{transform:translate(-50%) scale(1)}}#topbar{position:absolute;top:16px;right:16px;display:flex;gap:8px}.icon-btn{width:42px;height:42px;border-radius:14px;font-size:18px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.7);transition:transform .2s}.icon-btn:hover{transform:translateY(-2px) scale(1.05)}#log{position:absolute;top:70px;right:16px;width:260px;max-height:34vh;overflow:hidden;display:flex;flex-direction:column;gap:4px;mask-image:linear-gradient(to bottom,#000 70%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent);pointer-events:none!important}.log-item{font-size:12.5px;padding:6px 10px;border-radius:12px;background:#fffcf4b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 6px #00000014;animation:slidein .4s ease-out;border-left:4px solid var(--pc, #bbb)}.log-item b{color:var(--pcText, var(--ink))}@keyframes slidein{0%{opacity:0;transform:translate(30px)}}#bottom{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px}#actions{display:flex;gap:8px;padding:8px}.act{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 12px 7px;border-radius:14px;background:linear-gradient(180deg,#fffaf0,#f3e6cc);box-shadow:0 3px #d2b98c,0 6px 14px #00000026;color:var(--ink);transition:transform .15s,box-shadow .15s,filter .2s;min-width:78px}.act .lbl{font-weight:600;font-size:13px;display:flex;align-items:center;gap:5px}.act .lbl i{font-style:normal;font-size:17px}.act .cost{display:flex;gap:1px;font-size:11px}.act:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 6px #d2b98c,0 10px 20px #0000002e}.act:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #d2b98c}.act:disabled{filter:grayscale(.85) opacity(.55)}.act.selected{background:linear-gradient(180deg,#fff1c2,#ffd36b);box-shadow:0 3px #c98a12,0 0 0 3px #fff,0 0 24px #ffc94d}#hand-row{display:flex;gap:14px;align-items:flex-end}#hand{display:flex;gap:8px}.rcard{position:relative;width:64px;height:88px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid #fffaf0;box-shadow:0 6px 16px #00000040,inset 0 0 0 1px #0000001a;transition:transform .25s cubic-bezier(.2,1.6,.4,1);overflow:hidden}.rcard:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.45),transparent 45%)}.rcard .ic{font-size:30px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25));z-index:1}.rcard .nm{font-size:10px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);z-index:1;text-transform:uppercase;letter-spacing:.5px}.rcard .ct{position:absolute;top:-1px;right:-1px;min-width:26px;height:26px;border-radius:0 8px 0 12px;background:#fffaf0;color:var(--ink);font-weight:700;font-size:15px;display:grid;place-items:center;z-index:2}.rcard.zero{filter:saturate(.25) brightness(.9);opacity:.6}.rcard:hover{transform:translateY(-6px) rotate(-2deg)}.rcard.bump{animation:bump .5s cubic-bezier(.2,1.8,.4,1)}@keyframes bump{30%{transform:translateY(-14px) scale(1.12)}}.wood{background:var(--wood)}.brick{background:var(--brick)}.sheep{background:var(--sheep)}.wheat{background:var(--wheat)}.ore{background:var(--ore)}#devcards{display:flex;gap:6px}.dcard{position:relative;width:56px;height:80px;border-radius:11px;background:linear-gradient(160deg,#6b4fbb,#3b2a7a);border:3px solid #f6e7b8;box-shadow:0 6px 16px #00000040;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px;transition:transform .25s cubic-bezier(.2,1.6,.4,1)}.dcard .nm{font-size:8.5px;font-weight:600;text-align:center;line-height:1.1;margin-top:2px;padding:0 2px}.dcard .ct{position:absolute;top:-8px;right:-8px;background:var(--gold);color:#fff;border-radius:99px;font-size:12px;font-weight:700;padding:1px 7px;box-shadow:0 2px 4px #0003}.dcard.playable{cursor:pointer;box-shadow:0 0 0 2px #ffd36b,0 0 18px #ffd36bcc,0 6px 16px #00000040}.dcard.playable:hover{transform:translateY(-8px) rotate(2deg)}.dcard.new{opacity:.6}.dcard.new:after{content:"nueva";position:absolute;bottom:-9px;font-size:9px;background:#3b2a7a;padding:0 5px;border-radius:6px}#turnctl{position:absolute;right:22px;bottom:22px;display:flex;flex-direction:column;gap:10px;align-items:flex-end}.big-btn{font-size:18px;font-weight:700;padding:14px 24px;border-radius:18px;color:#fff;display:flex;align-items:center;gap:8px;transition:transform .15s,filter .2s,box-shadow .15s;text-shadow:0 1px 2px rgba(0,0,0,.3)}.big-btn.roll{background:linear-gradient(180deg,#ffcf5a,#f29a12);box-shadow:0 5px #b86d00,0 10px 24px #f29a1273}.big-btn.end{background:linear-gradient(180deg,#6fcf8a,#2f9e58);box-shadow:0 5px #1d6b3a,0 10px 24px #2f9e5866}.big-btn:hover:not(:disabled){transform:translateY(-3px)}.big-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #0000004d}.big-btn:disabled{filter:grayscale(1) opacity(.45);box-shadow:none}.big-btn.roll:not(:disabled){animation:glow 1.6s ease-in-out infinite}@keyframes glow{50%{box-shadow:0 5px #b86d00,0 0 34px #ffc83cf2}}#fly-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:30}.fly{position:absolute;width:42px;height:42px;margin:-21px 0 0 -21px;border-radius:10px;display:grid;place-items:center;font-size:22px;border:2px solid #fffaf0;box-shadow:0 6px 14px #0000004d}.dice-result{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);font-family:Cinzel Decorative,serif;font-weight:900;font-size:110px;color:#fff;text-shadow:0 6px 0 #c98a12,0 12px 30px rgba(0,0,0,.35);pointer-events:none;z-index:25;animation:diceres 1.6s cubic-bezier(.2,1.4,.4,1) forwards}.dice-result.seven{color:#fdd;text-shadow:0 6px 0 #a3201b,0 12px 30px rgba(0,0,0,.35)}@keyframes diceres{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}35%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-80%) scale(.9)}}#toasts{position:fixed;top:90px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:40;pointer-events:none}.toast{padding:10px 20px;border-radius:99px;background:#281c10d9;color:#fff;font-weight:500;box-shadow:var(--shadow);animation:toast 3s ease forwards}.toast.gold{background:linear-gradient(135deg,#ffcf5a,#e08a00);color:#4a2a00;font-weight:700}@keyframes toast{0%{opacity:0;transform:translateY(-14px) scale(.9)}10%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}#modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#141e3259;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;pointer-events:auto;animation:fade .25s ease;padding:16px}@keyframes fade{0%{opacity:0}}.modal{background:linear-gradient(180deg,#fffdf6,#f7ecd6);border-radius:24px;padding:24px 26px;box-shadow:0 30px 80px #00000059;border:2px solid #fff;min-width:340px;max-width:560px;width:100%;animation:rise .4s cubic-bezier(.2,1.4,.4,1);max-height:calc(100vh - 32px);overflow:auto}@keyframes rise{0%{opacity:0;transform:translateY(30px) scale(.92)}}.modal h2{margin:0 0 4px;font-size:24px}.modal p{margin:0 0 16px;color:var(--ink-soft)}.modal .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:10px 0}.modal .footer{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.btn{padding:10px 20px;border-radius:12px;font-weight:600;font-size:15px;background:linear-gradient(180deg,#ffcf5a,#f29a12);color:#fff;box-shadow:0 3px #b86d00;text-shadow:0 1px 1px rgba(0,0,0,.25)}.btn.ghost{background:#efe3c8;color:var(--ink);box-shadow:0 3px #cdb588;text-shadow:none}.btn:disabled{filter:grayscale(1) opacity(.5)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:none}.picker{display:flex;flex-direction:column;align-items:center;gap:6px}.picker .rcard{width:58px;height:78px;cursor:pointer}.picker .rcard.sel{box-shadow:0 0 0 3px var(--gold),0 0 20px #f2b134cc;transform:translateY(-4px)}.stepper{display:flex;align-items:center;gap:6px;font-weight:700}.stepper button{width:26px;height:26px;border-radius:50%;background:#efe3c8;font-weight:700;color:var(--ink)}.stepper button:hover{background:#ffd36b}.tabs{display:flex;gap:6px;margin:8px 0 14px;background:#efe3c8;padding:4px;border-radius:14px}.tabs button{flex:1;padding:8px;border-radius:10px;background:transparent;font-weight:600;color:var(--ink-soft)}.tabs button.active{background:#fff;color:var(--ink);box-shadow:0 2px 6px #0000001a}.section-title{font-weight:600;font-size:13px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;margin-top:8px;text-align:center}.ratio{font-size:11px;color:var(--ink-soft)}.responses{display:flex;flex-direction:column;gap:6px;margin-top:10px}.resp{padding:8px 12px;border-radius:12px;background:#fff;display:flex;justify-content:space-between;align-items:center;border-left:5px solid var(--pc)}.victims{display:flex;gap:12px;justify-content:center}.victim{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;border-radius:16px;background:#fff;box-shadow:0 3px 10px #0000001a;transition:transform .2s}.victim:hover{transform:translateY(-4px)}.reveal{perspective:800px;display:grid;place-items:center;margin:10px 0}.reveal .dcard{width:130px;height:186px;font-size:64px;animation:flip .9s cubic-bezier(.2,1.3,.4,1)}.reveal .dcard .nm{font-size:14px}@keyframes flip{0%{transform:rotateY(180deg) scale(.6)}}.help-list{font-size:14px;line-height:1.55;color:var(--ink);padding-left:18px;margin:0}.help-list li{margin-bottom:4px}.costs-table{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin-top:12px;font-size:14px;align-items:center}.winner-title{font-family:Cinzel Decorative,serif;font-size:34px;text-align:center;color:var(--gold-deep);margin:0}.scores{display:flex;flex-direction:column;gap:6px;margin:16px 0}.score{display:flex;justify-content:space-between;padding:8px 14px;border-radius:12px;background:#fff;border-left:6px solid var(--pc);font-weight:600}.confetti{position:fixed;top:-20px;width:10px;height:16px;z-index:60;pointer-events:none;animation:fall linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}#start-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:70;background:radial-gradient(ellipse at center,transparent 30%,rgba(10,40,70,.35));transition:opacity .9s ease;padding:16px}#start-screen.out{opacity:0;pointer-events:none}.start-card{width:380px;max-width:100%;padding:30px 32px 24px;border-radius:28px;background:#fffcf4d1;backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);box-shadow:0 30px 80px #0a1e3c59;border:1px solid rgba(255,255,255,.9);text-align:center;animation:rise .9s cubic-bezier(.2,1.3,.4,1)}.title-wrap{display:flex;flex-direction:column;align-items:center}.crown{font-size:44px;animation:bob 3s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-6px) rotate(4deg)}}h1{font-family:Cinzel Decorative,serif;font-weight:900;font-size:44px;line-height:.95;margin:4px 0 6px;background:linear-gradient(180deg,#f7c04a,#b8730a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #fff) drop-shadow(0 4px 10px rgba(150,90,0,.3))}h1 small{font-size:24px}.tagline{color:var(--ink-soft);margin:4px 0 18px;font-size:14px}.field{display:flex;justify-content:space-between;align-items:center;margin:12px 0;gap:12px;font-weight:600}.field input{flex:1;max-width:180px;padding:9px 12px;border-radius:12px;border:2px solid #ead8b4;background:#fff;font-family:inherit;font-size:15px;color:var(--ink);outline:none}.field input:focus{border-color:var(--gold)}.seg{display:flex;background:#efe3c8;padding:3px;border-radius:12px}.seg button{padding:6px 18px;border-radius:9px;background:transparent;font-weight:600;color:var(--ink-soft);font-size:15px}.seg button.active{background:#fff;color:var(--ink);box-shadow:0 2px 6px #0000001f}.colors{display:flex;gap:8px}.colors button{width:30px;height:30px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px #0003;transition:transform .2s}.colors button.active{transform:scale(1.2);box-shadow:0 0 0 2px var(--gold),0 2px 8px #0000004d}.start-btn{width:100%;margin-top:16px;padding:15px;font-size:19px;font-weight:700;border-radius:16px;color:#fff;background:linear-gradient(180deg,#ffcf5a,#f29a12);box-shadow:0 5px #b86d00,0 14px 30px #f29a1273;text-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform .15s}.start-btn:hover{transform:translateY(-2px)}.start-btn:active{transform:translateY(3px);box-shadow:0 1px #b86d00}.hint{font-size:11.5px;color:var(--ink-soft);margin:14px 0 0}@media(max-width:1100px){#log{display:none}#banner{max-width:calc(100vw - 340px)}}@media(max-width:760px){#players{width:auto;flex-direction:row;left:8px;right:8px;top:8px;gap:6px;overflow-x:auto}.pcard{grid-template-columns:30px auto;padding:6px 8px;gap:6px;min-width:110px}.pcard .vp{grid-column:2;font-size:16px;text-align:left}.avatar{width:30px;height:30px;font-size:14px}.pstats,.badges{display:none}.pcard.active{transform:translateY(3px)}.pcard.active:after{display:none}#banner{top:auto;bottom:230px;max-width:calc(100vw - 32px);min-width:0;padding:6px 16px}#banner-text{font-size:14px}#topbar{top:auto;bottom:230px;right:8px;flex-direction:column;display:none}#bottom{bottom:8px;left:8px;right:8px;transform:none}#actions{flex-wrap:wrap;justify-content:center;gap:5px;padding:0}.act{min-width:62px;padding:6px 8px}.act .cost{display:none}.rcard{width:48px;height:66px}.rcard .ic{font-size:22px}.rcard .nm{display:none}.dcard{width:40px;height:58px;font-size:18px}.dcard .nm{display:none}#hand-row{flex-wrap:wrap;justify-content:center;gap:8px}#turnctl{right:8px;bottom:170px}.big-btn{padding:10px 14px;font-size:15px}.big-btn span{display:none}.dice-result{font-size:80px}}#start-main .tabs{margin-top:16px}.join-row{display:flex;gap:8px;margin-top:12px}.join-row input{flex:1;min-width:0;padding:10px 12px;border-radius:12px;border:2px solid #ead8b4;font-family:Cinzel Decorative,serif;font-weight:900;font-size:20px;letter-spacing:6px;text-align:center;color:var(--ink);outline:none}.join-row input:focus{border-color:var(--gold)}.lobby-code-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px}.lobby-code-wrap>span{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);font-weight:600}#lobby-code{font-family:Cinzel Decorative,serif;font-weight:900;font-size:46px;letter-spacing:10px;color:var(--gold-deep);text-shadow:0 2px 0 #fff}#lobby-players{display:flex;flex-direction:column;gap:6px}.lobby-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;background:#fff;border-left:5px solid var(--pc, #ccc);text-align:left;animation:slidein .4s ease-out}.lobby-row .dot{width:14px;height:14px;border-radius:50%;background:var(--pc, #ccc);box-shadow:inset 0 -2px #0003}.lobby-row b{flex:1}.lobby-row .tag{font-size:12px;color:var(--ink-soft)}.lobby-row.ai{opacity:.6;background:#f7efdc}.seg button:disabled{opacity:.4}
