/* Approved Sunlit Garden skin. Geometry belongs to the shared template;
   future skins replace materials/assets without replacing this layout. */
:root{color-scheme:light;--ink:#292b33;--muted:#716c64;--line:#c1a884;--line-soft:#d6c7af;--blue:#24598d;--rose:#9f293b;--cream:#f6efe3;--display:Georgia,'Times New Roman',serif;--ui:'Segoe UI',Arial,sans-serif;--home-background:url('../assets/skins/sunlit-garden/home.webp');--board-background:url('../assets/skins/sunlit-garden/board.webp')}
*{box-sizing:border-box}html{min-height:100%;background:#e5dece}body{margin:0;color:var(--ink);font-family:var(--display);min-width:320px;background:#ece5d7}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #2a72af;outline-offset:3px}a{color:var(--blue)}.glyph{display:inline-block;width:24px;height:25px;vertical-align:middle;flex-shrink:0}.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}h1,h2,h3,p{margin-top:0}#app{min-height:100vh}body.scene-fit{overflow:hidden;width:100vw;height:100dvh;min-height:0}body.scene-fit #app{height:100dvh;min-height:0;overflow:hidden}.app-shell{position:relative;isolation:isolate;min-height:100vh}.scene-shell{position:absolute;left:var(--scene-left,0);top:var(--scene-top,0);width:1600px;height:900px;min-height:0;transform:scale(var(--scene-scale,1));transform-origin:top left;overflow:hidden}.home-shell{background:var(--home-background) center/cover no-repeat}.battle-shell{background:var(--board-background) center/cover no-repeat}.content-shell{background:linear-gradient(#f9f5eced,#f2eadbe8),var(--home-background) center/cover fixed;min-height:100vh}
.ornate-panel{position:relative;border:2px solid #b49775;border-radius:8px;background:radial-gradient(ellipse at 18% 12%,#fffdf8 0,transparent 80%),linear-gradient(105deg,#f8f1e6f5,#f1e7d8f7 50%,#fff9eff5);box-shadow:inset 0 0 0 3px #fff9eb,inset 0 0 0 5px #d6c0a0,0 3px 8px #543a2924}.ornate-panel:before{content:'';position:absolute;inset:8px;border:1px solid #c3a47b;clip-path:polygon(0 0,28px 0,28px 2px,2px 2px,2px 28px,0 28px,0 0,100% 0,100% 28px,calc(100% - 2px) 28px,calc(100% - 2px) 2px,calc(100% - 28px) 2px,calc(100% - 28px) 0,100% 0,100% 100%,calc(100% - 28px) 100%,calc(100% - 28px) calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) calc(100% - 28px),100% calc(100% - 28px),100% 100%,0 100%,0 calc(100% - 28px),2px calc(100% - 28px),2px calc(100% - 2px),28px calc(100% - 2px),28px 100%,0 100%);pointer-events:none}.overline{font:600 11px var(--ui);letter-spacing:.15em;text-transform:uppercase;color:#8b7454}.small-btn,.control-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:10px 19px;border:1px solid #b39b7b;border-radius:3px;background:linear-gradient(125deg,#fffdf6,#eae0cf);box-shadow:inset 0 0 0 2px #fff9ee;color:#294d75;font-size:15px;text-decoration:none;transition:filter .15s,transform .15s}.small-btn:hover,.control-btn:hover{filter:brightness(1.04);transform:translateY(-1px)}.primary{color:#fff5df;background:linear-gradient(120deg,#396a9b,#1c4675);border-color:#a69a80;box-shadow:inset 0 0 0 2px #7598b7,inset 0 0 0 3px #274467}.danger{color:#8d2934}.small-btn.ghost{background:transparent;box-shadow:none}.settings-gear{border:0;background:none;padding:8px;color:#6f6a61;display:grid;place-items:center}.settings-gear .glyph{width:30px;height:30px}.topbar{height:59px;background:linear-gradient(100deg,#fffaf0f5,#f7f4f0f5);border-bottom:3px double #b8a17b;display:flex;align-items:center;padding:0 29px;gap:22px;position:relative;z-index:5;box-shadow:0 3px 8px #40372e1f}.brand{display:flex;gap:12px;align-items:center;border:0;background:none;padding:0;min-width:335px}.brand .glyph{height:37px;width:37px;color:#6f6e6d}.brand-name{font:22px var(--display);letter-spacing:.23em;white-space:nowrap}.nav{display:flex;height:100%;align-items:stretch;gap:16px}.nav-btn{border:0;background:none;font-size:17px;white-space:nowrap;padding:0 13px;position:relative}.nav-btn.active{color:#28598d}.nav-btn.active:after{content:'';position:absolute;bottom:6px;height:2px;background:#4a6f9b;left:0;right:0}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:15px}.profile-button{display:flex;align-items:center;gap:10px;padding:3px 20px 3px 4px;border:1px solid #baa27d;background:#faf7ef;min-width:180px}.profile-seal{display:grid;place-items:center;width:44px;height:44px;border:2px double #b99d73;border-radius:50%;background:#e5eff6;color:var(--blue)}.profile-seal .glyph{width:28px;height:28px}
/* Home — the illustrated scene is independent from the interactive menu. */
.home-screen{height:841px;position:relative}.home-controls{position:absolute;right:54px;top:58px;width:570px;display:flex;flex-direction:column;gap:12px}.find-match{padding:23px 28px 13px;text-align:center}.find-match h1{font-size:31px;font-weight:400;margin:0 0 18px}.find-match h1:before,.find-match h1:after{content:'✧';font-size:23px;color:#aa8a60;margin:0 18px}.queue-tabs{display:flex;gap:10px;padding:5px;border:1px solid #cebb9e;border-radius:4px}.queue-tabs button{width:33.333%;border:1px solid #cfbea5;background:#fbf6eb;border-radius:4px;height:47px;font-size:18px;display:flex;align-items:center;justify-content:center;gap:9px}.queue-tabs button.active{color:#fff3de;background:linear-gradient(110deg,#4377a4,#1b4b81);border:2px solid #a9b1ad;box-shadow:inset 0 0 0 2px #7395b2}.queue-tabs .glyph{width:24px;height:24px}.find-match-button{margin:17px 0 5px;width:95%;height:71px;color:#fff2db;font-size:30px;letter-spacing:.02em;background:linear-gradient(100deg,#2c5d92,#376b9c 50%,#1a4374);border:4px double #dfc9a3;border-radius:16px 3px;box-shadow:inset 0 0 0 2px #739abb,0 2px 4px #91795870;display:inline-flex;align-items:center;justify-content:center;gap:23px}.find-match-button .glyph{width:38px;height:38px}.queue-note{font:12px var(--ui);color:#736b61;margin:5px 0 0}.home-deck{padding:13px 24px 17px;overflow:hidden}.home-deck-heading{font-size:20px;display:flex;align-items:center;gap:12px;height:30px}.faction-seal{display:grid;place-items:center;background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 70%,white),var(--accent));color:#fff5e3;border:2px solid #bfa884;clip-path:polygon(0 0,100% 0,100% 81%,50% 100%,0 81%);width:44px;height:51px;padding-bottom:7px;z-index:2}.faction-seal .glyph{width:30px;height:30px}.home-deck-body{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-top:10px}.deck-preview{display:flex;align-items:center;gap:16px;min-width:0;flex:1;height:67px;overflow:hidden;background:linear-gradient(90deg,#cee0e9,#f6f0e4);border:1px solid #bba27e}.deck-preview .playing-card{width:83px;transform:translateY(21px) rotate(-6deg);margin-left:9px;flex-shrink:0}.deck-preview>span{font-size:16px}.deck-preview small{display:block;margin-top:5px;font:12px var(--ui);color:var(--muted)}.home-deck .control-btn{font-size:16px;white-space:nowrap}.home-deck .control-btn>span{font-size:28px}.home-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.home-tile{height:131px;padding:0;overflow:hidden;text-align:left}.tile-art{display:block;height:85px;position:relative;background:linear-gradient(110deg,#f5efdc55,#f7f2e855),var(--home-background) 70% 34%/230% auto}.tile-art>.glyph{position:absolute;left:20px;top:14px;width:49px;height:49px;color:#957044;filter:drop-shadow(0 1px 0 white)}.tile-packs .tile-art{background-image:linear-gradient(110deg,#faf0db77,#f7f2e855),url('../assets/cards/placeholders/tidal-relic/deck.webp');background-position:center;background-size:cover}.tile-deckbuilder .tile-art{background-position:center,90% 85%}.tile-collection .tile-art{background-image:linear-gradient(110deg,#f5efdc55,#f7f2e855),url('../assets/cards/placeholders/wayfarer/deck.webp');background-position:center;background-size:cover}.tile-label{display:flex;align-items:center;justify-content:space-between;padding:9px 19px;font-size:21px;background:#faf5eaf0;border-top:1px solid #cbb38f}.tile-label>span{color:#7d6141;font-size:28px;line-height:.8}.home-rules-link{align-self:center;color:#294c70;font-size:14px;border:0;background:#faf5e5b3;padding:4px 16px;border-radius:12px}
/* Match — one permanent geometry for all board skins. */
.arena-stage{height:900px;width:1600px;padding:67px 28px 28px;position:relative}.match-header{position:absolute;top:0;right:0;height:43px;padding:0 24px;display:flex;align-items:center;gap:24px;background:#fffcf5ed;border-bottom:2px solid #c4ad8c;border-left:1px solid #d4c3aa;font-weight:600;font-size:16px}.match-header>span+span{border-left:1px solid #ccbda8;padding-left:24px}.match-header .settings-gear{padding:0 0 0 5px}.match-header .glyph{width:23px;height:23px}.match-grid{display:grid;grid-template-columns:190px minmax(0,1fr) 260px;gap:16px;height:805px}.left-rail{display:grid;grid-template-rows:minmax(0,1fr) 154px minmax(0,1fr);gap:12px}.fighter-card{padding:9px 14px 8px;display:flex;flex-direction:column;align-items:center;min-height:0}.fighter-heading{height:28px;align-self:stretch;display:flex;gap:8px;align-items:center;font-size:16px;font-weight:600;margin-bottom:7px}.fighter-heading .faction-seal{width:38px;height:44px;margin-top:7px;flex-shrink:0}.fighter-heading .faction-seal .glyph{width:26px;height:26px}.leader-socket{width:130px;aspect-ratio:2/3;flex-shrink:0;border-radius:4px;background:linear-gradient(130deg,#3e403b,#6b6961);box-shadow:inset 0 7px 17px #0008,inset 0 0 0 2px #99836c,0 1px 0 #fff5d9;position:relative;cursor:pointer}.leader-socket.used{cursor:default;border:2px solid #9c866c;outline:1px solid #d3bd9c}.leader-socket.used:after{content:'';position:absolute;inset:5px;border:1px solid #b69b74;border-radius:10px;opacity:.5}.fighter-score{font:600 38px/1 var(--display);color:var(--blue);margin:7px 0 4px}.enemy .fighter-score{color:var(--rose)}.win-diamonds{display:flex;gap:8px}.win-diamonds span{width:17px;height:17px;border:1px solid #6f5943;border-radius:50%;background:#fffcf5;box-shadow:inset 0 0 0 2px #fff8e6}.win-diamonds .filled{background:var(--blue)}.enemy .win-diamonds .filled{background:var(--rose)}.pass-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 9px}.turn-status{font-size:17px;font-weight:600;margin-bottom:3px}.pass-button{width:98px;height:98px;flex-shrink:0;border-radius:50%;border:5px double #bfaf8d;outline:2px solid #b79b6f;background:radial-gradient(circle at 40% 25%,#6097c8,#2368a5 45%,#164d86);box-shadow:inset 0 0 0 4px #96b5ca,inset 0 0 15px #29618b;color:#fffaf0;font-size:23px;line-height:1.07}.pass-button:disabled{filter:saturate(.45);opacity:.75}.turn-hint{height:17px;margin:4px 0 0;text-align:center;font:11px var(--ui);color:#6a655e;line-height:1.1;max-width:164px}
.board-area{min-width:0;display:grid;grid-template-rows:105px minmax(0,1fr) 19px minmax(0,1fr) 144px;position:relative;border:3px double #bfa17a;border-radius:12px;background:linear-gradient(100deg,#f9f2e14d,#eee1cd44);box-shadow:inset 0 0 0 5px #fff3df52,0 5px 9px #69533a29;overflow:visible}.hand-rail{display:flex;align-items:center;padding:8px 10px;gap:10px;min-width:0;background:linear-gradient(100deg,#f2e9d6c9,#fff7e5bb,#e6dbc6b5)}.opponent-hand-rail{border-radius:8px 8px 0 0;border-bottom:3px double #b79e7b}.player-hand-rail{border-radius:0 0 8px 8px;border-top:3px double #b79e7b}.hand-cards,.enemy-hand-cards{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;flex:1;position:relative;height:100%}.hand-cards:focus-within{z-index:8}.integrated-piles{display:flex;gap:12px;align-items:center;justify-content:center;width:170px;flex-shrink:0}.pile{border:0;padding:0;position:relative;width:77px;aspect-ratio:2/3;background:transparent;flex-shrink:0;filter:drop-shadow(3px 3px 0 #917e60)}.pile-back,.card-back{display:grid;place-items:center;position:relative;height:100%;width:100%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--sleeve) 78%,#ede4d5),var(--sleeve));border:3px double #d9c4a0;border-radius:4px;box-shadow:inset 0 0 0 4px #332e3266,inset 0 0 0 5px #d0b58d;color:#fff6e5}.pile-back:before,.card-back:before{content:'';position:absolute;inset:9px;border:1px solid #c7b29699;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.pile-back .glyph{width:39px;height:40px;filter:drop-shadow(0 2px 1px #26282e)}.pile-count{position:absolute;bottom:3px;left:6px;right:6px;border:1px solid #c4ab86;border-radius:10px;background:#28282ceb;color:#fff6df;font-size:22px;line-height:25px}.opponent-hand-rail .pile{width:57px}.opponent-hand-rail .integrated-piles{gap:20px}.opponent-hand-rail .pile-count{font-size:18px;line-height:21px;bottom:2px;left:3px;right:3px}.card-back{width:58px;height:87px;flex-shrink:0}.card-back>.glyph{width:33px;height:34px}.empty-hand{font:italic 18px var(--display);color:var(--muted)}
.board-half{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:3px;min-height:0;padding:4px 5px}.battle-row{display:flex;position:relative;align-items:center;border:1px solid #bba27b;min-height:0;border-radius:9px;background:linear-gradient(95deg,#faf1dd70,#fff5e642,#f6eddf57);box-shadow:inset 0 0 0 3px #fff4df35}.battle-row.targetable{background:linear-gradient(90deg,#cce7f182,#f8f2df8c,#cce7f182);border-color:#5992ab;cursor:pointer}.battle-row.targetable:hover,.battle-row.row-drop{box-shadow:inset 0 0 0 2px #4e8caa,inset 0 0 25px #88c9e657}.row-number{width:49px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:3px;color:#ae6b4b}.friendly-row .row-number{color:#538bab}.row-faction .glyph{width:27px;height:27px;opacity:.8}.row-power{font-size:16px;color:#5e5a50;line-height:1}.row-cards{flex:1;display:flex;align-items:center;justify-content:center;min-width:0;position:relative;isolation:isolate;height:100%}.row-cards>.board-card+.board-card{margin-left:var(--row-gap,6px)}.row-end{width:36px;flex-shrink:0;color:#ae6b4b;opacity:.6}.friendly-row .row-end{color:#538bab}.row-end .glyph{width:23px;height:23px}.board-divider{display:flex;align-items:center;justify-content:center;position:relative;color:#aa8762}.board-divider:before,.board-divider:after{content:'';height:1px;background:#ad916d;flex:1;margin:0 12px}.board-divider span{font-size:30px;line-height:1;text-shadow:0 1px 0 #fff4df}
.inspector{padding:17px 17px 15px;display:flex;flex-direction:column;min-height:0}.inspect-content{overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:#bdab8e transparent;padding:0 1px}.inspector-art{display:flex;justify-content:center;margin:7px auto 14px}.inspector-art .playing-card.inspect-card{width:205px}.inspect-name{text-align:center;font-size:23px;line-height:1.15;margin:0 0 8px}.inspect-type{text-align:center;font-size:15px;margin:0 0 18px;text-transform:capitalize}.inspect-rules{border:1px solid #bfa37e;outline:3px solid #f9f0df;outline-offset:-5px;min-height:105px;padding:17px 13px;font-size:18px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.keyword-explanations{margin-top:20px;border-top:1px solid #ccb18b;padding-top:16px}.keyword-explanations:empty{display:none}.keyword-explanations h3{font-size:18px;display:flex;align-items:center;gap:7px;margin:0 0 7px}.keyword-explanations p{font-size:17px;line-height:1.4;margin-bottom:15px}.keyword-explanations .glyph{width:21px;height:22px}.battle-log-button{display:flex;align-items:center;justify-content:center;gap:14px;border:1px solid #b89c78;border-radius:4px;margin:14px 3px 0;background:#fffaf0;height:46px;flex-shrink:0;font-size:18px}.battle-log-button .glyph{width:23px;height:25px}
/* Full and field cards share artwork, faction identity, indicators and finishes. */
.playing-card{--card-accent:#76604c;width:80px;aspect-ratio:2/3;position:relative;flex-shrink:0;border:2px solid #ad8657;border-radius:5px;background:#e5ceb0;padding:3px;color:#f9f5e9;box-shadow:inset 0 0 0 1px #fff2d4,0 2px 4px #2d2a244d;user-select:none;touch-action:manipulation;transition:transform .17s,box-shadow .17s;isolation:isolate}.playing-card.clickable{cursor:pointer}.card-face{position:relative;width:100%;height:100%;display:flex;flex-direction:column;border:1px solid #f5dfb7;border-radius:2px;overflow:hidden;background:#e8d7b8}.card-art{position:relative;flex:1;min-height:0;background:#c3d8e1;overflow:hidden}.art-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center;position:absolute;inset:0}.card-text{height:15px;flex-shrink:0;background:linear-gradient(100deg,#fcf7e9,#e7d7bf,#fcf7e9);color:#35302a;display:flex;align-items:center;justify-content:center;padding:1px 2px;border-top:1px solid #c7a576}.card-title{font-size:7px;line-height:1.05;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.frame-corner{position:absolute;width:11px;height:11px;border:1px solid #805d36;border-radius:1px 7px;box-shadow:inset 0 0 0 1px #fff0c8;pointer-events:none;z-index:4}.frame-corner:after{content:'';position:absolute;width:3px;height:3px;background:#c2a079;border:1px solid #fff0c8;transform:rotate(45deg);top:2px;left:2px}.frame-corner.tl{top:2px;left:2px}.frame-corner.tr{top:2px;right:2px;transform:rotate(90deg)}.frame-corner.bl{bottom:2px;left:2px;transform:rotate(-90deg)}.frame-corner.br{bottom:2px;right:2px;transform:rotate(180deg)}.card-ribbon{position:absolute;left:4px;top:1px;width:27%;z-index:5;padding:3px 2px 10px;filter:drop-shadow(1px 2px 1px #241f2980);clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),50% 100%,0 calc(100% - 9px));background:linear-gradient(110deg,#e4d4b7,#8d7b64 45%,#f4e4c1)}.card-ribbon:before{content:'';position:absolute;inset:2px 2px 3px;z-index:-1;clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),50% 100%,0 calc(100% - 8px));background:linear-gradient(105deg,color-mix(in srgb,var(--card-accent) 82%,black),var(--card-accent) 52%,color-mix(in srgb,var(--card-accent) 80%,white))}.primary-indicator{display:grid;place-items:center;position:relative;width:100%;z-index:2}.power-number{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(.4px 1px .3px #0009)}.type-icon{display:block;width:100%;aspect-ratio:1;filter:drop-shadow(0 1px 1px #000)}.type-icon>.glyph{width:100%;height:100%;padding:1px}.keyword-icons{display:flex;flex-direction:column;align-items:center;gap:2px}.keyword-icon{display:block;width:90%;aspect-ratio:1;color:#fff9e9;filter:drop-shadow(0 1px 1px #000)}.keyword-icon .glyph{display:block;width:100%;height:100%}.playing-card.leader-card{width:100%;height:100%}.leader-card .card-text{height:19px}.leader-card .card-title{font-size:10px}.playing-card.inspect-card{width:94px}.inspect-card .card-title{font-size:8px}.inspector-art .inspect-card .card-text{height:30px}.inspector-art .inspect-card .card-title{font-size:15px}.inspector-art .frame-corner{width:17px;height:17px}.playing-card.board-card{width:132px;aspect-ratio:132/75;z-index:1;padding:2px;border-radius:4px}.board-card .card-face{padding-bottom:20px}.field-strip{position:absolute;height:22px;bottom:2px;left:2px;right:2px;display:flex;align-items:center;background:linear-gradient(95deg,#35322c,#232629 60%,#3e3a32);border:1px solid #c6aa7c;border-radius:0 0 2px 2px;z-index:5;overflow:hidden}.field-strip>.primary-indicator{width:33px;height:100%;border-right:1px solid #c4a276;background:linear-gradient(100deg,color-mix(in srgb,var(--card-accent) 80%,#000),var(--card-accent));flex-shrink:0}.field-strip .power-number{height:24px;width:27px;margin-top:-2px}.field-strip .type-icon{width:22px;height:19px;aspect-ratio:auto}.field-strip .keyword-icons{flex-direction:row;height:100%;padding:1px 5px;gap:3px;min-width:0;overflow:hidden}.field-strip .keyword-icon{width:19px;height:19px;flex-shrink:0}.field-strip .keyword-icons:has(.keyword-icon:nth-child(5)){mask-image:linear-gradient(90deg,#000 80%,transparent)}.board-card .frame-corner.bl,.board-card .frame-corner.br{display:none}.playing-card.selected{outline:2px solid #216797;box-shadow:0 0 0 4px #fbf0d9,0 6px 15px #315d8880;z-index:12}.hand-cards .playing-card:hover,.hand-cards .playing-card:focus-visible{transform:translateY(-9px);z-index:11}.hand-cards .playing-card.selected{transform:translateY(-12px)}.board-card:hover,.board-card:focus-visible{z-index:15;transform:translateY(-4px) scale(1.05)}.cosmetic-art-layer{position:absolute;inset:0;pointer-events:none;z-index:1}.playing-card[data-finish=rainbow-foil] .cosmetic-art-layer{background:linear-gradient(115deg,#f1cfff22,#e4c2ff77,#97f0e43b,#f9df9d66,#f498c64d);mix-blend-mode:screen;background-size:250% 250%;animation:foil-drift 6s ease-in-out infinite}.playing-card[data-finish=special-border]{border-color:#bda0d5;box-shadow:inset 0 0 0 1px #f7e7ff,0 2px 4px #2d2a244d}@keyframes foil-drift{50%{background-position:100% 100%}}
/* Dialogs stay within the scene; long lists/text scroll inside their panel. */
.modal-backdrop{position:absolute;inset:0;z-index:50;background:#23344370;display:flex;align-items:center;justify-content:center;padding:30px;backdrop-filter:blur(4px)}.content-shell>.modal-backdrop{position:fixed}.modal{width:510px;max-height:90%;padding:34px 38px 29px;text-align:center;overflow:auto}.modal h2{font-size:30px;font-weight:400;margin-bottom:30px}.modal-title{font-size:44px;font-weight:400;margin:16px 0}.modal-lead{font-size:18px;line-height:1.5}.modal-score{display:flex;gap:30px;align-items:center;justify-content:center;margin:12px 0 20px}.modal-score>b{font-size:53px;color:#285985}.modal-score>b:last-child{color:#9f293b}.modal-score>span{font:12px var(--ui);letter-spacing:.14em;color:var(--muted)}.modal-actions{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:24px}.close-dialog{position:absolute;top:11px;right:15px;background:none;border:0;font-size:28px;color:#7c6d59}.wide-modal{width:830px}.volume-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:17px 0;font-size:21px}.percent-control{display:flex;align-items:center;height:45px;min-width:134px;border:1px solid #bda17e;background:#fffcf7;box-shadow:inset 0 2px 4px #87705425;border-radius:4px}.percent-control>input{font:23px var(--display);appearance:textfield;-moz-appearance:textfield;width:74px;border:0;background:none;text-align:right;color:#30445b;outline-offset:0;padding:7px}.percent-control>input::-webkit-inner-spin-button,.percent-control>input::-webkit-outer-spin-button{appearance:none;margin:0}.percent-control>span{font-size:20px;margin-right:6px}.stepper{height:100%;width:30px;display:flex;flex-direction:column;border-left:1px solid #c8b293}.stepper button{padding:0;flex:1;font:18px/1 var(--ui);border:0;background:linear-gradient(#fff8ec,#eaddc7);color:#786a57}.stepper button+button{border-top:1px solid #cfbc9f}.effects-setting{display:flex;align-items:center;justify-content:space-between;font-size:21px;padding-top:18px;margin:21px 0;border-top:1px solid #d3bda0}.effects-setting input{width:42px;height:23px;accent-color:#285c92;cursor:pointer}.deck-remaining{font-size:90px;color:var(--blue)}.pile-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:22px}.graveyard-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;max-height:420px;overflow:auto;padding:6px 4px 20px}.grave-card{border:0;padding:0;background:none;display:flex;justify-content:center}.grave-card>.playing-card{width:120px}.grave-card .card-text{height:22px}.grave-card .card-title{font-size:10px}.empty-state{padding:30px;font-size:18px;color:var(--muted);grid-column:1/-1;text-align:center}.event-log{max-height:450px;overflow:auto;text-align:left;scrollbar-width:thin}.log-entry{font:15px/1.5 var(--ui);padding:12px 4px;border-bottom:1px solid #dacdb9;color:#5a5f60}.log-entry.play{color:#315a81}.log-entry.effect{color:#6d5475}.toast{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);z-index:80;max-width:650px;padding:13px 24px;border:1px solid #a58c6b;background:#fff9ecfa;box-shadow:0 4px 20px #39454644;color:#2f4859;font:15px var(--ui);text-align:center}.content-shell>.toast{position:fixed}
/* Existing deckbuilding/account flows share this skin and the same full cards. */
.view{max-width:1540px;margin:0 auto}.content-screen{padding:34px 32px 45px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;border-bottom:1px solid #cfbda0;padding-bottom:22px;margin-bottom:22px}.page-title{font-size:42px;font-weight:400;margin:10px 0}.page-desc{font:14px/1.6 var(--ui);color:#69655e;max-width:760px;margin:0}.faction-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:15px 0 25px}.faction-choice{border:1px solid #c9b596;text-align:left;background:#faf5e9;color:var(--ink);padding:14px;box-shadow:inset 0 0 0 2px #fff9ef}.faction-choice.selected{border:2px solid var(--choice);background:color-mix(in srgb,var(--choice) 10%,#fff9ec)}.faction-icon{font-size:27px;color:var(--choice);display:block;margin-bottom:8px}.faction-choice b{display:block;font-size:17px}.faction-choice small{display:block;font:11px/1.5 var(--ui);color:#6f685f;margin-top:5px}.deck-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px}.surface,.account-card,.rule-tile{background:#faf6ecd9;border:1px solid #c5ae8b;padding:20px;box-shadow:inset 0 0 0 3px #fffaf1}.panel-title{font:600 11px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#8a7251;margin-bottom:15px}.panel-subtitle{font:14px/1.6 var(--ui);color:#6a685f}.collection-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.type-filters{display:flex;gap:6px}.filter-chip{font:12px var(--ui);border:1px solid #c9b596;background:#f6efdf;padding:9px 14px}.filter-chip.selected{background:#2d608d;color:#fff6e4;border-color:#57748c}.search-input,.account-form input{background:#fffdf7;color:#304453;border:1px solid #c7b392;padding:11px;font:14px var(--ui)}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-height:620px;overflow:auto;scrollbar-width:thin;padding:2px}.library-entry{display:flex;gap:12px;background:#f0e7d880;border:1px solid #dac8aa;padding:12px;min-width:0}.library-entry .playing-card{pointer-events:none}.library-info{min-width:0;display:flex;flex-direction:column;gap:7px}.library-name{font-size:16px;font-weight:600;line-height:1.2}.library-caption{font:10px var(--ui);color:#716955;text-transform:uppercase}.library-description{font:11px/1.4 var(--ui);color:#7a7365}.library-actions{display:flex;align-items:center;gap:9px;margin-top:auto}.quantity-action{border:1px solid #bba383;color:#315d82;background:#fffbef;width:28px;height:26px;font:20px var(--display)}.quantity-pill{font-size:16px}.deck-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #d7c6a9}.deck-head>span:first-child{color:#324b60!important;font-weight:400!important}.deck-count{font-size:29px;color:#2d5d89}.deck-count small{font-size:14px}.deck-list{max-height:430px;overflow:auto;scrollbar-width:thin}.deck-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #deceb5;font-size:13px}.deck-item .number{font-weight:600;color:#36668c}.deck-item .name{flex:1}.deck-item .type{font:9px var(--ui);color:var(--muted)}.deck-item button{border:0;background:none;font-size:19px;color:#935045}.deck-summary{display:flex;gap:15px;font:12px var(--ui);margin:12px 0}.deck-sidebar-actions{display:flex;flex-direction:column;gap:8px;margin-top:15px}.note-box{border-left:3px solid #bc9c72;background:#eae0cd7d;padding:12px;font:12px/1.6 var(--ui);color:#716853;margin-top:15px}.ability-tag{display:inline-block;background:#e2d7c1;border:1px solid #c4ae8b;color:#776244;padding:4px 7px;font:10px var(--ui)}.rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.rule-number{font-size:30px;color:#a48e6b;margin-bottom:10px}.rule-title{font-size:23px;margin-bottom:12px}.rule-body{font:14px/1.7 var(--ui);color:#706b62}.account-layout{display:grid;grid-template-columns:minmax(0,600px) 1fr;gap:25px}.account-card h2{font-size:24px;overflow-wrap:anywhere}.account-form{display:flex;flex-direction:column;gap:18px;margin:20px 0}.account-form label{display:flex;flex-direction:column;gap:8px;font:14px var(--ui)}.account-actions{display:flex;gap:10px;flex-wrap:wrap}.account-note{font:15px/1.5 var(--ui);padding:15px;color:#456775}.unavailable-screen{min-height:80vh;display:grid;place-items:center}.unavailable-screen>.ornate-panel{max-width:650px;text-align:center;padding:55px}.unavailable-screen h1{font-size:40px;font-weight:400}.unavailable-screen p{font:17px/1.7 var(--ui);color:var(--muted)}.unavailable-icon>.glyph{width:65px;height:65px;color:#a38356;margin-bottom:25px}
body[data-effects=off] *,body[data-effects=off] *:before,body[data-effects=off] *:after{animation:none!important;transition:none!important}body[data-effects=off] .cosmetic-art-layer{background:none!important}body[data-effects=off] .playing-card:hover,body[data-effects=off] .playing-card:focus-visible{transform:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:1100px){.content-shell .topbar{height:auto;min-height:65px;flex-wrap:wrap;gap:7px;padding:10px 15px}.content-shell .brand{min-width:240px}.content-shell .brand-name{font-size:17px}.content-shell .nav{order:3;width:100%;justify-content:center;gap:3px}.content-shell .nav-btn{font-size:14px;padding:9px}.content-shell .nav-btn.active:after{bottom:0}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-screen{padding:25px 15px}.faction-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.deck-layout,.account-layout{grid-template-columns:1fr}.rules-grid{grid-template-columns:1fr 1fr}.library-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-direction:column}.page-title{font-size:33px}.content-shell .topbar-right{gap:6px}.content-shell .profile-button{min-width:100px;font-size:13px}.content-shell .brand{min-width:180px}.content-shell .brand-name{font-size:15px}.content-shell .brand .glyph{width:28px}.content-shell .nav-btn{font-size:12px;padding:8px}.content-shell .nav{flex-wrap:wrap}.content-shell .modal{max-width:95vw;padding:30px 20px}.content-shell .volume-row{font-size:17px}.content-shell .modal-backdrop{padding:5px}}

/* Rule choices use the established cream modal and shared full-card renderer. */
.battle-choice-modal{max-height:790px;display:flex;flex-direction:column;gap:12px}.battle-choice-modal h2{margin:0}.battle-choice-modal p{margin:0;font:15px var(--ui)}.battle-choice-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;overflow:auto;max-height:510px;padding:8px}.battle-choice-card{background:none;border:2px solid transparent;padding:4px;border-radius:5px;position:relative}.battle-choice-card .playing-card.inspect-card{width:112px}.battle-choice-card.chosen{border-color:#346e9c;background:#c9e1ef;box-shadow:0 0 0 2px #fff8e8}.battle-choice-card.chosen:after{content:'✓';position:absolute;top:4px;right:4px;background:#255f8a;color:white;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}.battle-choice-rows{display:flex;justify-content:center;gap:10px}.ability-controls{display:flex;flex-direction:column;gap:6px;margin-top:12px}.ability-controls .control-btn{font:15px var(--ui);padding:10px 7px}.ability-controls small{font:12px var(--ui);line-height:1.4;color:#60584b}
/* Shared pale indicators retain faction contrast. */
.playing-card .keyword-icon,.playing-card .type-icon{color:var(--card-ink,#fff9e9)}.faction-seal{color:var(--faction-ink,#fff9e9)}.card-back,.pile-back{color:var(--sleeve-ink,#fff9e9)}

.faction-choice .faction-icon{color:var(--faction-ink,#fff9e9);background:var(--choice);border:1px solid #8c99a866;border-radius:50%;padding:8px;width:48px;height:48px}
.faction-choice .faction-icon .glyph{width:100%;height:100%}

/* Ability A: printed identity stays stable; live legal status controls readiness. */
.playing-card .keyword-ability .ability-core{fill:currentColor}
.playing-card .keyword-ability[data-ability-state="ready"]{color:#e5faff;filter:drop-shadow(0 0 2px #70c9ee)}
.playing-card .keyword-ability[data-ability-state="unavailable"],.playing-card .keyword-ability[data-ability-state="spent"]{color:#90949b;filter:drop-shadow(0 1px 1px #111)}
.playing-card .keyword-ability[data-ability-state="unavailable"] .ability-core,.playing-card .keyword-ability[data-ability-state="spent"] .ability-core{fill:none}
body[data-effects="off"] .playing-card .keyword-ability[data-ability-state="ready"]{filter:none}

.choice-context{display:block;max-width:120px;font:12px var(--ui);color:#4b5360;margin-top:5px;text-transform:capitalize}.card-counter{font-weight:bold;margin:12px 0 0}

/* Practice setup extends the home menu without moving the hero or destinations. */
.practice-setup{padding-top:19px}.practice-setup h1{margin-bottom:10px}.practice-setup .find-match-button{height:64px;margin-top:9px}.practice-decks{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:12px}.practice-decks label{display:flex;flex-direction:column;gap:5px;min-width:0;text-align:left;font:13px var(--ui);color:#5c5b58}.practice-decks select{width:100%;min-width:0;height:36px;border:1px solid #bba787;border-radius:4px;padding:5px 9px;background:#fffaf0;color:#294d75;font:14px var(--ui)}
/* Home feedback is small and remains inside each control's existing hit area. */
.home-shell :is(.brand,.nav-btn,.profile-button,.settings-gear,.home-tile,.find-match-button,.queue-tabs button,.home-deck .control-btn,.home-rules-link,.practice-decks select){transition:transform .16s ease,filter .16s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){body:not([data-effects=off]) .home-shell :is(.brand,.nav-btn,.profile-button,.settings-gear,.home-tile,.find-match-button,.queue-tabs button,.home-deck .control-btn,.home-rules-link,.practice-decks select):not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.025)}}
@media(prefers-reduced-motion:reduce){.home-shell :is(button,select){transition:none!important;transform:none!important}}
body[data-effects=off] .home-shell :is(button,select){transition:none!important;transform:none!important}
