/* ABALONE · moonlit hand-painted lakeside. */
:root{--bg:#08121e;--panel:#101f2bea;--gold:#c5aa7d;--gold-light:#ead8b6;--muted:#a0adb6;--line:#b9ad8730}
.world-bg{background:linear-gradient(90deg,#08121ee8,#08121e90),url('/assets/abalone-quietlake-v14.webp') 68% center/cover no-repeat;opacity:.3}
body[data-view=home] .world-bg{height:max(780px,100svh);background:linear-gradient(0deg,#08121e 0%,#08121e00 25%),linear-gradient(90deg,#08121e55 0%,#08121e10 48%,transparent 75%),url('/assets/abalone-quietlake-v14.webp') center top/cover no-repeat;opacity:1}
.app-shell{max-width:1600px;padding:0 4.3vw}.topbar{height:104px;border-color:#d4c3a32b}.brand{font-size:23px;color:#eadfc8}
.home-hero{min-height:clamp(610px,calc(100svh - 104px),820px);align-items:center}.hero-copy{max-width:660px;width:49%;padding:45px 0 90px}.hero-copy h1{font-size:clamp(66px,7.8vw,126px);letter-spacing:.035em;line-height:1.25;margin-top:18px;color:#f0e5cf;font-family:Georgia,'Times New Roman',serif;font-weight:400;text-shadow:0 2px 28px #06101c55}.hero-subtitle{font-size:clamp(22px,2.05vw,32px);letter-spacing:.17em;margin-top:26px}.hero-description{color:#b8c0c3;font-size:15px;margin:28px 0;line-height:2.1}.hero-meta{gap:25px}.hero-meta span{color:#b6bec2;font-size:12px}.hero-seal,.embers{display:none}
.resume-strip{max-width:550px;background:#111f28de;border-color:#c5aa7d55;margin-top:30px;padding:17px 20px}.resume-strip strong{font-size:13px}.resume-strip small{font-size:11px}.resume-strip .btn{padding:12px 19px}
.start-section{max-width:1260px;margin:0 auto;padding:25px 0 12px}.mode-card,.mode-card.featured{background:#101f2beb;border-color:#c5aa7d40;border-radius:6px;box-shadow:none}.mode-card.featured{border-color:#c5aa7d80}.mode-card:hover{background:#182b3b;border-color:var(--gold);transform:translateY(-3px)}.mode-card h2{font-size:20px}.mode-card p{color:#a0adb6}.panel,.board-panel{background:linear-gradient(130deg,#132432f5,#0d1a27f5)}.modal{background:#101f2bf7}.rules-modal .modal-close{background:#132432}.btn.primary{background:#d4bc90;color:#111c28;box-shadow:none}.btn.primary:hover:not(:disabled){background:#ead6b0;box-shadow:none}footer{color:#85949f;border-color:#b9ad8720}footer>span:last-child{color:#8997a0}
@media(min-width:1500px){body[data-view=home] .world-bg{height:max(840px,100svh);background-position:center top}.home-hero{min-height:clamp(660px,calc(100svh - 104px),820px)}}
@media(max-width:1050px){.app-shell{padding:0 28px}.hero-copy{width:57%;padding-bottom:65px}.hero-copy h1{font-size:clamp(64px,8.1vw,85px)}.hero-description{font-size:14px}.hero-meta{gap:17px}.hero-meta span{font-size:10px}.mode-card h2{font-size:17px}}
@media(max-width:760px){.app-shell{padding:0 22px}.topbar{height:82px}.brand{font-size:20px}.home-hero{min-height:630px;align-items:flex-end}.hero-copy{width:100%;max-width:600px;padding:175px 0 48px}.hero-copy h1{font-size:clamp(60px,10.4vw,76px)}.hero-subtitle{font-size:24px;letter-spacing:.14em}.hero-description{font-size:14px}.hero-meta span{font-size:11px}.hero-meta{gap:20px}.resume-strip{max-width:480px}.start-section{padding-top:15px}body[data-view=home] .world-bg{height:850px;background:linear-gradient(0deg,#08121e 0%,#08121ee0 21%,#08121e65 57%,#08121e00 80%),linear-gradient(90deg,#08121e30,transparent),url('/assets/abalone-quietlake-v14.webp') 78% top/auto 700px no-repeat}}
@media(max-width:480px){.app-shell{padding:0 20px}.topbar{height:78px}.brand{font-size:18px;letter-spacing:.12em}.brand>.icon{width:27px}.brand small{font-size:6px}.topbar nav{gap:2px}.topbar nav .btn.nav-btn{min-width:42px;min-height:44px}.home-hero,.home-hero:has(.resume-strip){min-height:620px;align-items:flex-end}.hero-copy,.hero-copy:has(.resume-strip){width:100%;min-width:0;padding:215px 0 35px}.hero-copy .eyebrow{font-size:8px;letter-spacing:.16em}.hero-copy h1{font-size:clamp(42px,12vw,58px);letter-spacing:.025em;white-space:nowrap;margin:15px 0 0}.hero-subtitle{font-size:clamp(18px,5vw,22px);letter-spacing:.1em;margin-top:18px}.hero-description{font-size:12px;line-height:2;margin:18px 0}.hero-meta{gap:14px;row-gap:10px;margin-top:19px}.hero-meta span{font-size:9px;gap:5px}.hero-meta .icon{width:14px;height:14px}body[data-view=home] .world-bg{height:820px;background:linear-gradient(0deg,#08121e 0%,#08121ef0 29%,#08121e85 51%,#08121e00 75%),url('/assets/abalone-quietlake-v14.webp') 81% top/auto 530px no-repeat}.resume-strip{margin-top:22px;padding:13px;gap:8px;max-width:100%}.resume-strip>div{min-width:0}.resume-strip strong{font-size:11px}.resume-strip small{font-size:9px}.resume-strip .btn{padding:9px 11px;flex-shrink:0}.start-section{padding:10px 0 0}.section-label{gap:12px}.section-label>span{font-size:8px}.section-label>p{font-size:11px}.mode-grid{grid-template-columns:minmax(0,1fr)}.mode-grid>.mode-card{grid-column:1/-1;grid-row:auto;grid-template-columns:32px minmax(0,1fr) 20px;padding:21px 17px;column-gap:12px}.mode-card h2{font-size:17px}.mode-card p{font-size:11px}.mode-card .mode-en{font-size:9px}.mode-card .mode-bottom>.icon{width:19px}}
@media(max-width:360px){.app-shell{padding:0 16px}.hero-copy h1{font-size:clamp(37px,11.8vw,43px)}.hero-subtitle{font-size:18px}.hero-meta{gap:10px}.hero-meta span{font-size:8px}.brand{font-size:16px}.brand>.icon{width:23px}.mode-card h2{font-size:16px}}
@media(hover:none){.mode-card:hover{transform:none}}
@media(min-width:761px){body[data-view=home] .world-bg{height:max(780px,57.15vw);background-size:100% 100%,100% 100%,100% auto}}

/* Restore the original AVALON typography while keeping the ABALONE name. */
.hero-copy h1{font-family:Cinzel,Georgia,serif;font-size:clamp(64px,7.4vw,112px);font-weight:400;letter-spacing:.11em;line-height:1.2;text-shadow:0 2px 18px #06101c55}
body[data-view=home] .world-bg{background-image:linear-gradient(0deg,#08121e 0%,#08121e00 22%),linear-gradient(90deg,#08121e38 0%,#08121e0a 38%,transparent 60%),url('/assets/abalone-quietlake-v14.webp')}
@media(max-width:760px){.hero-copy h1{font-size:clamp(58px,9.5vw,72px);letter-spacing:.09em}body[data-view=home] .world-bg{background-image:linear-gradient(0deg,#08121e 0%,#08121ee0 20%,#08121e38 53%,#08121e00 74%),linear-gradient(90deg,#08121e10,transparent),url('/assets/abalone-quietlake-v14.webp')}}
@media(max-width:480px){.hero-copy h1{font-size:clamp(37px,10.9vw,52px);letter-spacing:.08em}body[data-view=home] .world-bg{background-image:linear-gradient(0deg,#08121e 0%,#08121ef0 28%,#08121e45 48%,#08121e00 70%),url('/assets/abalone-quietlake-v14.webp')}}
@media(max-width:360px){.hero-copy h1{font-size:clamp(33px,10.7vw,38px);letter-spacing:.07em}}

/* One public table replaces the separate scoreboard and long player list. */
.game-layout{max-width:1280px;grid-template-columns:minmax(420px,1.05fr) minmax(0,1fr);gap:30px}
.game-layout aside,.roundtable-panel{min-width:0}.roundtable-panel{width:100%;max-width:590px;margin:0 auto;padding:18px 0 12px}
.table-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 15px 13px}.table-heading .eyebrow{font-size:9px;letter-spacing:.12em}
.council-table{position:relative;width:100%;aspect-ratio:1;isolation:isolate}
.table-surface{position:absolute;inset:9.5%;border-radius:50%;background:radial-gradient(ellipse at 40% 30%,#1b3040,#0d1e2b 75%);border:3px solid #bda16b;box-shadow:0 0 0 5px #14232f,0 0 0 6px #bda16b55,0 15px 30px #0005,inset 0 0 0 7px #091725,inset 0 0 0 8px #bda16b45;z-index:-1}
.table-surface:after{content:'';position:absolute;inset:13px;border:1px solid #c5aa7d22;border-radius:50%}
.table-center{position:absolute;inset:27% 21% 23%;display:flex;align-items:center;justify-content:center;pointer-events:none}
.table-center .board-panel{width:100%;border:0;box-shadow:none;border-radius:0;padding:0;background:none}
.table-center .board-head{display:block;text-align:center}.table-center .board-head .eyebrow,.table-center .board-head .room-badge,.table-center .board-note{display:none}
.table-center .board-head h2{font-size:clamp(15px,1.7vw,23px);margin:0;color:#eadfc8;letter-spacing:.05em}
.table-center .score-line{padding:10px 0 12px;gap:7px}.table-center .score-line>span{font-size:11px;gap:5px;white-space:nowrap}.table-center .score-line b{font-size:26px}.table-center .score-line small{font-size:10px}.table-center .score-divider{font-size:12px}
.table-center .quest-track{gap:6px;margin:0 0 13px}.table-center .quest-item>div{width:38px;height:43px;font-size:17px}.table-center .quest-item>strong{font-size:10px;margin-top:6px}.table-center .quest-item>small{font-size:9px;white-space:nowrap}
.table-center .rejection-line{gap:8px;font-size:9px;padding-top:11px;white-space:nowrap}.table-center .rejection-line>div{gap:4px}.table-center .rejection-line strong{font-size:11px}
.table-seat{position:absolute;left:var(--seat-x);top:var(--seat-y);transform:translate(-50%,-50%);width:17%;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;border-radius:8px;padding:4px 0;background:none;color:#c4ced4;transition:color .15s}
button.table-seat:hover{color:#fff0ce}.seat-medallion{display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;width:54px;height:54px;border:1px solid #6e899d;border-radius:50%;background:radial-gradient(circle at 35% 25%,#284153,#142736);box-shadow:0 0 0 3px #0b1a27,0 0 0 4px #72849055,0 5px 13px #0006}
.seat-number{font-family:Cinzel,Georgia,serif;font-size:16px}.seat-name{display:block;max-width:100%;font-size:13px;font-weight:500;line-height:1.4;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d6d9d6}
.in-expedition .seat-medallion{border-color:#f0dcaf;box-shadow:0 0 0 3px #c3a575,0 0 0 5px #0b1a27,0 5px 13px #0006}.is-leader .seat-name{color:#ead4a8}
.seat-crown{position:absolute;top:-15px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;background:#102332;border-radius:3px;padding:1px;color:#e6c586}.seat-crown .icon{width:19px;height:19px}
.seat-check{position:absolute;bottom:-3px;right:-4px;display:flex;align-items:center;justify-content:center;background:#efdfb8;color:#152330;border:2px solid #102332;border-radius:50%;width:20px;height:20px}.seat-check .icon{width:14px;height:14px;stroke-width:2}
.table-legend{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0 0;font-size:10px;color:#b5b9b7}.table-legend .icon{width:14px;height:14px;color:var(--gold)}.table-legend>span{margin:0 4px;color:#526471}
.table-instruction{margin:12px auto 0;text-align:center;color:#b8c4ca;font-size:12px}.table-instruction strong{color:#ead4a8;white-space:nowrap}.table-lady{margin:8px 0;text-align:center;font-size:11px}.table-lady .icon{width:14px;height:14px;color:var(--gold)}
.table-note{text-align:center;font-size:9px;margin:10px 14px 0;line-height:1.7;color:#8d9da9}.table-selection-hint{text-align:center;font-size:12px;color:#b2c0c8;border:1px solid #bda16b33;border-radius:5px;padding:18px 12px}
.game-content:has(.table-selection-hint){min-height:0}.game-content:has(.table-selection-hint) .content-heading{margin-bottom:18px}.table-selection-hint{padding:10px 8px}
@media(min-width:1100px){.game-layout .roundtable-panel{position:sticky;top:20px}.game-layout aside{align-self:stretch}}
@media(max-width:1050px){.game-layout{grid-template-columns:minmax(370px,1fr) minmax(0,1fr);gap:20px}.table-center .quest-item>div{width:31px;height:35px}.table-center .score-line b{font-size:23px}.seat-medallion{width:47px;height:47px}.seat-name{font-size:12px}.table-center .score-line>span{font-size:10px}}
@media(max-width:860px){.game-layout{display:flex;flex-direction:column;align-items:stretch}.game-layout aside{width:100%}.game-main{width:100%}.roundtable-panel{max-width:520px}.table-center .board-head h2{font-size:20px}.table-center .quest-item>div{width:36px;height:41px}.seat-medallion{width:51px;height:51px}}
@media(max-width:480px){
 .game-heading{padding:23px 0 7px}.game-heading h1{font-size:23px}.roundtable-panel{padding-top:12px}.table-heading{padding:0 3px 9px}.table-heading .eyebrow{font-size:8px}.table-heading .room-badge{font-size:8px}
 .table-surface{border-width:2px}.table-seat{min-height:56px;width:19%;gap:4px}.seat-medallion{width:38px;height:38px}.seat-number{font-size:12px}.seat-name{font-size:10px;max-width:92%}.seat-crown{top:-13px}.seat-crown .icon{width:16px;height:16px}.seat-check{width:17px;height:17px;right:-4px;bottom:-3px}.seat-check .icon{width:11px;height:11px}
 .table-center{inset:27% 21% 23%}.table-center .board-head h2{font-size:15px}.table-center .score-line{padding:7px 0 8px;gap:4px}.table-center .score-line>span{font-size:8px;gap:3px}.table-center .score-line b{font-size:21px}.table-center .score-line small{font-size:8px}.table-center .score-line .good-dot,.table-center .score-line .evil-dot{width:4px;height:4px}.table-center .quest-track{gap:4px;margin-bottom:7px}.table-center .quest-item>div{width:26px;height:30px;font-size:12px}.table-center .quest-item>div>.icon{width:15px;height:15px}.table-center .quest-item>strong{font-size:8px;margin-top:4px}.table-center .quest-item>small{font-size:7px;line-height:1.3}.table-center .rejection-line{gap:5px;padding-top:7px;font-size:7px}.table-center .rejection-line>div{gap:3px}.table-center .rejection-line strong{font-size:9px}
 .table-legend{font-size:8px;gap:4px;margin-top:10px}.table-legend>span{margin:0 2px}.table-legend .icon{width:11px;height:11px}.table-note{font-size:8px;margin-top:7px}.table-instruction{font-size:11px;margin-top:10px}.game-layout{gap:15px}
}
@media(max-width:360px){.table-seat{min-height:48px}.seat-medallion{width:32px;height:32px}.seat-number{font-size:11px}.seat-name{font-size:9px}.table-center{inset:25% 21% 20%}.table-center .board-head h2{font-size:13px}.table-center .score-line b{font-size:18px}.table-center .score-line{padding:5px 0 6px}.table-center .quest-track{gap:3px;margin-bottom:6px}.table-center .quest-item>div{width:23px;height:26px;font-size:11px}.table-center .quest-item>small{font-size:6px}.table-center .rejection-line{font-size:6px;gap:4px}.table-legend{font-size:7px}}
@media(min-width:361px) and (max-width:480px){.seat-name{font-size:11px}.table-center .board-head h2{font-size:16px}.table-center .score-line>span{font-size:9px}.table-center .score-line small{font-size:9px}.table-center .quest-item>strong{font-size:9px}.table-center .quest-item>small{font-size:8px}.table-center .rejection-line{font-size:8px}.table-center .rejection-line strong{font-size:10px}}
