@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght,SOFT@9..144,500..700,0..100&display=swap";:root{font-family:DM Mono,ui-monospace,monospace;color:#eee8da;background:#101414;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button,select{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.46}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #d7ff5f;outline-offset:3px}.tabletop-shell{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;padding:34px clamp(24px,6vw,100px) 64px;background:radial-gradient(ellipse at 7% 12%,#294239 0%,transparent 34%),radial-gradient(ellipse at 94% 89%,#44331e 0%,transparent 38%),#101414}.tabletop-shell:before{content:"";position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;opacity:.19;background-image:linear-gradient(30deg,transparent 47%,#b9c6a322 48%,#b9c6a322 52%,transparent 53%),linear-gradient(150deg,transparent 47%,#b9c6a322 48%,#b9c6a322 52%,transparent 53%);background-size:46px 80px}.grain{pointer-events:none;position:fixed;z-index:4;top:0;right:0;bottom:0;left:0;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.masthead{max-width:1280px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{color:#f5f0e4;display:inline-flex;align-items:center;gap:12px;text-decoration:none;font:600 24px/1 Fraunces,Georgia,serif;letter-spacing:-.04em}.brand em{font-weight:500}.brand-mark{display:grid;width:37px;aspect-ratio:1;place-items:center;border:1px solid #d8ff63;color:#d8ff63;font:500 11px DM Mono,monospace;letter-spacing:-.12em;transform:rotate(-8deg)}.identity-chip,.count-badge{border:1px solid #ecdfc928;padding:8px 11px;color:#f2e7d3;font-size:11px}.identity-chip span{color:#aeb5a5}.lobby-page,.room-page,.game-placeholder,.not-found{max-width:1280px;margin:clamp(70px,11vh,130px) auto 0}.page-reveal{animation:reveal .65s both cubic-bezier(.2,.75,.25,1)}@keyframes reveal{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}.intro-block{max-width:610px}.eyebrow,.panel-kicker{margin:0 0 12px;color:#d8ff63;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.intro-block h1,.room-header h1,.game-placeholder h1,.not-found h1{margin:0;font:600 clamp(53px,8vw,110px)/.87 "Fraunces",Georgia,serif;letter-spacing:-.075em}.intro-block h1 i,h1 i{color:#e7b677;font-weight:500}.intro-copy{max-width:470px;margin:28px 0 0;color:#bac0b4;line-height:1.75;font-size:13px}.lobby-actions{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;max-width:910px;margin-top:64px}.panel,.setup-card,.players-card{border:1px solid #eee4cd2c;background:#171d1bcb;box-shadow:16px 18px #0406062a}.panel{padding:30px}.create-panel{border-top:3px solid #d8ff63}.join-panel{border-top:3px solid #e7b677}.panel h2,.setup-card h2,.players-card h2{margin:0 0 25px;font:600 31px/1 Fraunces,Georgia,serif;letter-spacing:-.045em}label{display:grid;gap:8px;margin-bottom:18px;color:#d4d4c8;font-size:11px}input,select{width:100%;border:1px solid #ebdfc533;border-radius:0;background:#0f1513;color:#f3ede2;padding:13px 12px;outline:none}input::placeholder{color:#788178}.field-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(130px,.9fr);gap:12px}.room-code-input{letter-spacing:.18em;text-transform:uppercase}.primary-action,.secondary-action,.copy-link{border:0;padding:14px 17px;text-decoration:none;transition:transform .2s,background .2s}.primary-action{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;background:#d8ff63;color:#152015;font-size:11px;font-weight:500}.primary-action span{font-size:16px}.primary-action:hover:not(:disabled),.secondary-action:hover:not(:disabled),.copy-link:hover{transform:translate(-2px,-2px)}.panel .primary-action,.panel .secondary-action{width:100%;margin-top:5px}.secondary-action,.copy-link{background:transparent;border:1px solid #ece1cd57;color:#efe7db;font-size:11px}.inline-action{margin-top:24px}.room-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:32px}.room-header h1{font-size:clamp(50px,7vw,86px)}.room-layout{display:grid;grid-template-columns:minmax(245px,.7fr) minmax(450px,1.3fr);gap:18px}.setup-card{padding:29px}.setup-card label+label{margin-top:24px}.host-note{color:#9fa89c;font-size:11px;line-height:1.75;margin:36px 0 0}.players-card{padding:29px}.players-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.count-badge{color:#c7d3bd;white-space:nowrap}.player-list{list-style:none;padding:0;margin:0;border-top:1px solid #e9dfcb2b}.player-list li{min-height:65px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e9dfcb2b}.player-list .is-offline{opacity:.42}.player-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.player-name strong{font:600 18px Fraunces,Georgia,serif}.player-name small{color:#a5ad9e;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.presence{width:7px;height:7px;border-radius:50%;background:#d8ff63;box-shadow:0 0 0 4px #d8ff6317}.color-controls{display:flex;gap:8px}.color-token{width:21px;height:21px;border:1px solid #ffffff36;border-radius:50%;padding:0;transition:transform .2s,box-shadow .2s}.color-token:hover:not(:disabled),.color-token.active{transform:scale(1.2);box-shadow:0 0 0 3px #ede6d640}.color-token.green{background:#55b26f}.color-token.red{background:#d85952}.color-token.blue{background:#5f9de3}.color-token.yellow{background:#edc84d}.start-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:24px;color:#aeb5a5;font-size:11px}.not-found{max-width:670px}.not-found>p:not(.eyebrow),.game-placeholder>p:not(.eyebrow){color:#bac0b4;line-height:1.8;max-width:490px}.game-placeholder{max-width:730px}.game-seal{display:grid;place-items:center;width:76px;aspect-ratio:1;margin-bottom:26px;border:1px solid #d8ff63;color:#d8ff63;font-size:14px;transform:rotate(-7deg)}.role-note{margin-top:30px;padding:15px;border-left:2px solid #e7b677;background:#e7b6770c;color:#d5d6cd;font-size:12px}.ink-green{color:#74d68d}.ink-red{color:#ee7770}.ink-blue{color:#8ec2fa}.ink-yellow{color:#ffd95e}.toast{position:fixed;z-index:10;right:24px;bottom:24px;max-width:350px;margin:0;padding:14px 16px;border:1px solid #e7b6777d;background:#242019;color:#f6ddba;font-size:11px;box-shadow:8px 8px #0004}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.identity-form{width:min(100%,360px);margin-top:30px}@media(max-width:760px){.tabletop-shell{padding:24px 20px 50px}.identity-chip{display:none}.lobby-page,.room-page,.game-placeholder,.not-found{margin-top:66px}.lobby-actions,.room-layout{grid-template-columns:1fr}.room-header,.start-strip{align-items:start;flex-direction:column}.copy-link{width:100%}.players-card,.setup-card,.panel{padding:22px}.player-list li{align-items:flex-start;padding:14px 0;flex-direction:column}.field-grid{grid-template-columns:1fr;gap:0}}:root{font-size:17px}body{line-height:1.5}.identity-chip,.count-badge{padding:9px 12px;font-size:13px}.intro-copy{font-size:16px;line-height:1.7}.panel,.setup-card,.players-card{border-color:#eee4cd45}.panel h2,.setup-card h2,.players-card h2{margin-bottom:27px;font-size:34px}label{gap:9px;margin-bottom:20px;font-size:14px}input,select{min-height:48px;padding:12px 14px;font-size:16px}.primary-action,.secondary-action,.copy-link{min-height:48px;padding:13px 17px;font-size:14px}.host-note,.start-strip{font-size:14px;line-height:1.6}.player-name strong{font-size:20px}.player-name small{font-size:11px}.color-token{width:26px;height:26px}.toast{max-width:390px;padding:16px 18px;font-size:14px;line-height:1.5}.game-table{--turn-accent: green;max-width:1480px;margin:32px auto 0;display:grid;grid-template-columns:minmax(440px,1.35fr) minmax(330px,.8fr);gap:18px;align-items:start}.game-table__board{grid-row:span 2;position:relative;aspect-ratio:1;overflow:hidden;border:1px solid color-mix(in srgb,var(--turn-accent),#eee 35%);background:#080b0a;box-shadow:0 0 0 5px color-mix(in srgb,var(--turn-accent),transparent 82%),18px 22px #02030365;transition:border-color .35s,box-shadow .35s}.board-caption{position:absolute;z-index:8;bottom:12px;left:12px;padding:8px 10px;background:#101514d9;border:1px solid #eee9dc38;color:#deded4;font-size:10px}.board-caption__dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:var(--turn-accent)}.board-surface{position:relative;width:100%;height:100%;aspect-ratio:1;isolation:isolate}.board-surface__image{display:block;width:100%;height:100%;object-fit:cover}.board-piece,.board-token,.board-destination,.discard-count,.board-debug-slot,.board-outcome{position:absolute;z-index:2}.board-piece--card{filter:drop-shadow(1px 2px 1px #000b)}.board-piece--card .game-card{width:100%;height:100%;aspect-ratio:auto;border-radius:1px;box-shadow:none}.board-piece--eternal .game-card{box-shadow:0 0 0 1px #dbcf9d8c,1px 2px 1px #000a}.board-stage-overlay{position:absolute;z-index:1;object-fit:fill;pointer-events:none}.board-overlay-debug{position:absolute;z-index:8;border:2px dashed #36e5ff;background:#36e5ff20;box-shadow:inset 0 0 0 1px #05191f,0 0 0 1px #36e5ff70;pointer-events:none}.board-overlay-debug>span{position:absolute;top:-18px;left:0;max-width:240%;padding:3px 5px;background:#06313b;color:#d5fbff;font:700 7px/1 DM Mono,ui-monospace,monospace;letter-spacing:-.04em;white-space:nowrap}.board-token--key{width:3.5%}.board-token--key-counter{width:2.8%}.board-reward-card{z-index:3}.board-token{z-index:3;width:4.1%;height:auto;transform:translate(-5%,-5%);filter:drop-shadow(1px 2px 1px #000)}.board-token--star{width:4.2%}.board-token--heart{width:4.1%;transform:translate(-50%,-50%);filter:drop-shadow(1px 2px 1px #000a)}.discard-count{z-index:4;color:#f6e9be;font:700 8px/1 Georgia,serif;text-shadow:0 1px 2px #000}.board-reward{z-index:3;display:grid;place-items:center;color:#f3df9e;font-size:7px;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 2px #000}.board-destination{z-index:6;left:19%;width:63%;height:12%;border:1px dashed #d8ff63;background:#d8ff6319;color:#f4ffd5;font:700 clamp(7px,1.15vw,11px)/1 Georgia,serif;letter-spacing:.08em;opacity:0;transition:opacity .18s,background .18s;cursor:pointer}.is-targeting .board-destination{opacity:1}.board-destination:hover,.board-destination:focus-visible{background:#d8ff6345;outline:2px solid #f5ffb9;outline-offset:-2px}.board-destination--river{left:9%;width:47%;height:11%}.board-debug-slot{z-index:7;display:grid;place-items:center;overflow:visible;outline:1px dashed #ff7fe3;background:#ff7fe321;pointer-events:none}.board-debug-slot>span{position:absolute;z-index:2;max-width:150%;padding:2px 3px;background:#2e1031e8;color:#fff2fc;font:6px/1 monospace;white-space:nowrap}.board-debug-slot .game-card{width:100%;height:100%;opacity:.35}.board-debug-title{position:absolute;z-index:9;top:1%;left:2%;margin:0;padding:4px 6px;background:#2e1031e8;color:#fff2fc;font:8px/1 monospace}.board-outcome{z-index:10;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:8px;background:#080908c9;color:#f7eabc;text-align:center}.board-outcome p{margin:0;font:700 clamp(24px,5vw,50px)/1 "Fraunces",Georgia,serif}.board-outcome span{font-size:11px}.game-table__opponents{display:grid;gap:9px;max-height:calc(100vh - 120px);overflow-y:auto;padding-right:5px}.game-table__meta{display:flex;align-items:center;justify-content:space-between;padding:4px 3px}.game-table__meta .eyebrow{margin:0}.spectator-count{color:#aab3a2;font-size:10px}.player-zone,.game-table__self{border:1px solid #e9e2d12a;background:#151b19eb;box-shadow:7px 8px #03050439}.player-zone{padding:12px 13px;border-left:3px solid var(--zone-color)}.player-zone--red{--zone-color: #d85952}.player-zone--blue{--zone-color: #5f9de3}.player-zone--green{--zone-color: #55b26f}.player-zone--yellow{--zone-color: #edc84d}.player-zone.is-active-turn,.game-table__self.is-active-turn{border-color:var(--zone-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--zone-color),transparent 70%),7px 8px #03050439}.player-zone.is-offline{opacity:.46}.player-zone__header,.self-header{display:flex;justify-content:space-between;align-items:start;gap:12px}.player-zone__header>div,.recipient{display:flex;align-items:center;gap:7px}.player-zone__header strong{font:600 18px/1 Fraunces,Georgia,serif}.player-zone__header small{color:var(--zone-color);font-size:8px;letter-spacing:.1em;text-transform:uppercase}.color-sigil{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--zone-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--zone-color),transparent 82%)}.deck-count{color:#e9e5db;font-size:12px}.deck-count em{color:#8d978c;font-size:9px;font-style:normal}.player-zone__cards{display:flex;gap:15px;align-items:center;margin-top:10px;min-height:72px}.player-zone__cards .game-card.compact{width:50px}.deck-stack{min-width:50px}.opponent-hand{display:flex;align-items:center;min-width:0;overflow-x:auto;padding:4px}.opponent-hand .game-card{margin-left:-2px}.opponent-hand .game-card:first-child{margin-left:0}.game-card{position:relative;flex:0 0 auto;display:grid;width:76px;aspect-ratio:.68;place-items:center;overflow:hidden;padding:0;border:1px solid #f5eedf80;border-radius:3px;background:#111;box-shadow:3px 4px #02030375}.game-card.compact{width:36px;box-shadow:2px 2px #0203037a}.game-card__number,.game-card__solid,.game-card__image,.game-card__crest{width:100%;height:100%}.game-card__number{display:grid;place-items:center;color:#fff;text-shadow:0 2px 4px #0009;font:700 clamp(36px,5vw,64px)/1 "Fraunces",Georgia,serif}.compact .game-card__number{font-size:25px}.game-card__solid,.game-card__image{display:block;background-position:center;background-size:cover}.game-card__crest{display:grid;grid-template-rows:70% 30%;background:#050505}.game-card__crest>span{background-position:top center;background-size:100% auto;background-repeat:no-repeat}.game-card.is-selectable{cursor:pointer;transition:transform .18s,box-shadow .18s}.game-card.is-selectable:hover{transform:translateY(-8px) rotate(-1deg)}.game-card.is-selected{transform:translateY(-13px);outline:3px solid #d8ff63;outline-offset:3px;box-shadow:0 0 0 4px #d8ff6344,5px 7px #02030375}.game-table__self{grid-column:2;align-self:start;padding:20px;border-left:4px solid var(--zone-color)}.self-header h1{margin:0;color:#f0eadb;font:600 30px/1 Fraunces,Georgia,serif;letter-spacing:-.045em}.self-header h1 span{color:var(--zone-color);font-size:14px;font-style:italic}.self-deck{display:flex;align-items:center;gap:9px;color:#abb3a8;font-size:10px}.self-hand{display:flex;align-items:end;min-height:120px;max-width:100%;overflow-x:auto;padding:18px 10px 13px}.self-hand .game-card{margin-left:-4px}.self-hand .game-card:first-child{margin-left:0}.game-actions{display:flex;align-items:center;gap:10px;border-top:1px solid #e9e2d125;padding-top:15px}.action-button{border:1px solid #e9e2d14f;padding:11px 13px;background:transparent;color:#e9e7dd;font-size:10px}.action-button span{margin-left:12px;font-size:14px}.action-button--play{background:#d8ff63;border-color:#d8ff63;color:#152015}.action-button--gem{color:#f0cd67}.turn-wait,.empty-hand{color:#98a197;font-size:11px}.game-table__spectator-note{grid-column:2;padding:23px;border-left:3px solid #e7b677;background:#e7b6770c}.game-table__spectator-note h1{margin:0;font:600 34px/1 Fraunces,Georgia,serif}.game-table__spectator-note h1 i{color:#e7b677}.game-table__spectator-note p:not(.eyebrow){max-width:470px;color:#bdc3b8;font-size:12px;line-height:1.7}.game-notice{position:fixed;top:24px;left:50%;z-index:30;width:min(560px,calc(100vw - 32px));margin:0;transform:translate(-50%);padding:16px 18px;border:2px solid #ffbd6d;background:#42171c;color:#fff7df;font:700 16px/1.45 Fraunces,Georgia,serif;text-shadow:0 1px 1px #000;box-shadow:0 0 0 4px #15090bcc,10px 10px #0007}.notice-enter-active,.notice-leave-active{transition:opacity .22s ease,transform .22s ease}.notice-enter-from,.notice-leave-to{opacity:0;transform:translate(-50%,-14px)}.gift-dialog__backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#050706b8}.gift-dialog{width:min(100%,430px);padding:27px;border:1px solid #e9e2d15a;background:#18201d;box-shadow:15px 18px #02030370}.gift-dialog h2{margin:0;font:600 32px/1.05 Fraunces,Georgia,serif;letter-spacing:-.045em}.gift-dialog>p:not(.eyebrow){color:#b6beb2;font-size:11px;line-height:1.6}.gift-dialog__choices{display:grid;gap:8px;margin:22px 0}.recipient{width:100%;border:1px solid color-mix(in srgb,var(--zone-color),#e9e2d1 30%);padding:12px;background:#0f1513;color:#f1ede3;text-align:left}.recipient small{margin-left:auto;color:#aab2a7;font-size:9px}.dialog-cancel{float:right;min-height:44px;margin:22px 0 4px 18px;border:1px solid #ff7a4a;background:linear-gradient(135deg,#7d2e20,#ad4829);color:#fff0dc;padding:10px 15px;box-shadow:3px 3px #160907;font-size:12px;font-weight:700;text-decoration:none}.dialog-cancel:hover:not(:disabled),.dialog-cancel:focus-visible{border-color:#ffc06e;background:linear-gradient(135deg,#a84025,#d75d32);color:#fff9e7}.eternal-choice-list{display:flex;gap:12px;margin:22px 0;overflow-x:auto}.eternal-choice{display:grid;min-width:112px;gap:7px;border:1px solid #e9e2d150;padding:9px;background:#0f1513;color:#f2ebdc;font:10px/1 Georgia,serif;text-transform:capitalize}.eternal-choice .game-card.compact{width:94px}.eternal-choice .game-card{margin:auto}.eternal-choice:hover{border-color:#d8ff63;transform:translateY(-2px)}@media(max-width:820px){.game-table{grid-template-columns:1fr}.game-table__opponents{max-height:none}.game-table__self,.game-table__spectator-note{grid-column:auto}.game-table__board{grid-row:auto;max-width:680px;width:100%;margin:auto}.self-hand .game-card{width:65px}.game-actions{flex-wrap:wrap}.game-table__meta{margin-top:12px}}.game-card__ability{display:grid;width:100%;height:100%;place-items:center;padding:7px;background:repeating-linear-gradient(135deg,#1d1725 0,#1d1725 6px,#34223a 6px,#34223a 12px);color:#f3d48b;text-align:center;font:700 10px/1.15 Georgia,serif;text-transform:uppercase}.ability-status{color:#f0cd67;font-size:10px}.ability-targets{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:12px;max-height:390px;overflow-y:auto;margin:20px 0}.ability-target{display:grid;gap:7px;justify-items:center;border:1px solid #e9e2d140;padding:9px;background:#101614;color:#ece5d6;font-size:10px}.ability-target.is-picked{border-color:#d8ff63;box-shadow:0 0 0 2px #d8ff6330}.ability-target .game-card.compact{width:76px}.board-token--eternal{z-index:5}.gem-dialog{display:grid;grid-template-columns:minmax(0,1fr) auto;width:min(100%,620px);max-height:min(780px,calc(100vh - 40px));overflow-y:auto}.gem-dialog>*{grid-column:1 / -1}.gem-dialog>.action-button.action-button--play{grid-column:1;align-self:end;justify-self:start;margin-top:22px}.gem-dialog>.dialog-cancel{grid-column:2;align-self:end;justify-self:end;float:none;margin:22px 0 4px 18px}.ghost-gem-dialog__actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px}.ghost-gem-dialog__actions .action-button{margin:0}.ghost-gem-dialog__actions .dialog-cancel{float:none;margin:0}.gem-hand{display:flex;align-items:end;min-height:108px;overflow-x:auto;margin:16px 0 20px;padding:12px 16px;border-top:1px solid #e9e2d122;border-bottom:1px solid #e9e2d122}.gem-hand .game-card{width:78px;margin-left:-2px}.gem-hand .game-card:first-child{margin-left:0}.gem-section-title{margin:19px 0 7px;color:#f0cd67;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.gem-recipe-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.gem-recipe-option{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:7px;min-height:38px;border:1px solid #e9e2d130;padding:7px;background:#111714;color:#d7ded3;font:10px/1.15 Georgia,serif;text-align:left}.gem-recipe-option b{color:#f0cd67;font-size:12px}.gem-recipe-option i{color:#f0cd67;font-size:12px;font-style:normal}.gem-recipe-option:hover,.gem-recipe-option:focus-visible,.gem-recipe-option.is-picked{border-color:#d8ff63;background:#d8ff6310;outline:none}.gem-empty{grid-column:1 / -1;margin:4px 0;color:#b8a78b;font-size:10px}.gem-eternals{margin:8px 0 19px}.eternal-choice.is-picked{border-color:#d8ff63;box-shadow:0 0 0 2px #d8ff6330}.board-eternal-preview-trigger{cursor:zoom-in}.eternal-preview{position:absolute;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:8px;background:#070908dc;color:#f4e7c5;pointer-events:none;text-transform:capitalize}.eternal-preview p{margin:0;font:700 16px/1 Georgia,serif;letter-spacing:.08em}.eternal-preview__card .game-card{width:min(270px,48vw);box-shadow:10px 14px #0008}.eternal-preview>span{font-size:9px;color:#c3baab}.is-marking{cursor:crosshair}.board-marker{position:absolute;z-index:12;width:3.4%;aspect-ratio:1;box-sizing:border-box;border:2px solid color-mix(in srgb,var(--marker-color),white 64%);border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 30% 25%,#ffffffcc 0 10%,color-mix(in srgb,var(--marker-color),white 22%) 14%,var(--marker-color) 48%,color-mix(in srgb,var(--marker-color),black 35%) 100%);box-shadow:inset -2px -3px 4px #0005,inset 2px 2px 3px #fff8,1px 3px 4px #000b;pointer-events:none}.board-marker--own{padding:0;cursor:pointer;pointer-events:auto;transition:transform .15s,filter .15s}.board-marker--own:hover,.board-marker--own:focus-visible{transform:translate(-50%,-50%) scale(1.16);filter:brightness(1.18);outline:2px solid #f8f3d8;outline-offset:2px}.board-destination--debug{opacity:1;pointer-events:none;border-color:#ff7fe3;background:#ff7fe32b;color:#fff2fc}.board-destination-debug-title{position:absolute;z-index:9;top:4%;left:2%;margin:0;padding:4px 6px;background:#2e1031e8;color:#fff2fc;font:8px/1 monospace}.board-destination{font-size:clamp(11px,1.25vw,14px)}.discard-count{font-size:10px}.board-reward{font-size:9px}.player-zone{padding:15px 16px}.player-zone__header strong{font-size:20px}.player-zone__header small{font-size:11px}.deck-count{font-size:14px}.deck-count em{font-size:11px}.spectator-count,.self-deck{font-size:13px}.self-header h1{font-size:34px}.self-header h1 span{font-size:16px}.game-actions{gap:12px;padding-top:18px}.action-button{min-height:44px;padding:10px 14px;font-size:14px}.turn-wait,.empty-hand,.ability-status{font-size:14px;line-height:1.5}.game-notice{max-width:min(560px,calc(100vw - 32px));padding:16px 18px;font-size:16px;line-height:1.45}.gift-dialog{width:min(100%,490px);padding:30px}.gift-dialog>p:not(.eyebrow){font-size:14px;line-height:1.65}.recipient{min-height:48px;padding:13px;font-size:14px}.recipient small,.dialog-cancel{font-size:12px}.eternal-choice,.ability-target,.gem-recipe-option{font-size:13px}.game-card__ability{font-size:12px}.gem-section-title{font-size:11px}.gem-empty{font-size:13px}@media(max-width:820px){.game-table{gap:22px}.player-zone,.game-table__self{padding:16px}.self-header{flex-wrap:wrap}}.session-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:24px;padding-top:17px;border-top:1px solid #e9e2d125}.session-actions__management{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-left:auto}.session-action{min-height:40px;border:1px solid #e9e2d14f;background:transparent;color:#bcc5b6;padding:9px 12px;font:500 12px DM Mono,ui-monospace,monospace}.session-action--new{border-color:#d8ff638a;color:#d8ff63}.session-action:hover:not(:disabled),.session-action:focus-visible{border-color:#d8ff63;color:#efffd1}.session-action span{margin-left:8px;font-size:15px}.festival-action{min-height:42px;border:1px solid #ffd36b;background:linear-gradient(110deg,#f04383,#f47e3e 48%,#f3bc38);color:#fff9d8;padding:10px 15px;box-shadow:0 0 0 2px #f043832d,4px 4px #12090f;font:700 12px DM Mono,ui-monospace,monospace;letter-spacing:.025em;text-shadow:0 1px 2px #51121f;transition:transform .18s,filter .18s,box-shadow .18s}.festival-action>span,.festival-action>i{color:#fff5a6;font-size:16px;font-style:normal}.festival-action>span{margin-right:7px}.festival-action>i{margin-left:7px}.festival-action:hover:not(:disabled),.festival-action:focus-visible{filter:saturate(1.2) brightness(1.1);transform:translate(-2px,-2px) rotate(-1deg);box-shadow:0 0 18px #ff8a4a8c,6px 6px #12090f}.festival-action:disabled{filter:grayscale(.35);opacity:.48}.session-dialog{border-top:3px solid #d8ff63}.session-dialog__field{display:grid;gap:8px;margin:18px 0 0;color:#d4d4c8;font-size:12px}.session-dialog__field select{min-height:46px}.session-dialog__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:30px 4px 4px}.session-dialog__actions .action-button{box-shadow:3px 3px #080b0a}.session-dialog__actions .dialog-cancel{min-height:42px;border:1px solid #d95e58;background:#3b1719;color:#ffd6d1;padding:10px 14px;text-decoration:none}.session-dialog__actions .dialog-cancel:hover:not(:disabled),.session-dialog__actions .dialog-cancel:focus-visible{border-color:#ff9d92;background:#582022;color:#fff3f0}.game-actions.is-out-of-lives>.action-button:nth-of-type(2){cursor:not-allowed;opacity:.38;pointer-events:none}@media(max-width:520px){.session-actions,.session-actions__management{align-items:stretch;flex-direction:column;width:100%}.session-action,.festival-action{width:100%}.session-dialog__actions{align-items:stretch;flex-direction:column}.session-dialog__actions .action-button,.session-dialog__actions .dialog-cancel{width:100%}}
