:root{--bg:#0d1517;--panel:#172225;--panel2:#1b2829;--gold:#d4b978;--bright:#f4e7c7;--muted:#9baaa6;--outline:#43504b;--red:#a46654;--green:#a2b9a2}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at top,#1b2929 0%,var(--bg) 62%);color:var(--bright);font:15px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden}body.modal-open{overflow:hidden}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--gold)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}h1,h2,h3,.brand-copy strong{font-family:Georgia,'Times New Roman',serif;font-weight:normal}h1,h2,h3,p{margin-top:0}h2{font-size:clamp(28px,5vw,43px);line-height:1.15}h3{font-size:24px}p{line-height:1.62}.muted{color:var(--muted)}.small{font-size:12px}.lead{max-width:640px}.ambient{pointer-events:none;position:fixed;border-radius:50%;filter:blur(90px);z-index:0;opacity:.08}.ambient-a{top:-130px;right:-100px;width:340px;height:340px;background:#e8bb6e}.ambient-b{left:-180px;top:450px;width:380px;height:380px;background:#a4b7ac}.app-shell{max-width:1140px;margin:0 auto;padding:0 24px;position:relative;z-index:1}.site-header{height:88px;display:flex;align-items:center;border-bottom:1px solid #7c795635;gap:15px}.brand-mark{font-family:Georgia,serif;font-size:43px;color:var(--gold);border:1px solid #8e7950;width:54px;height:54px;display:grid;place-items:center;transform:rotate(45deg);border-radius:8px}.brand-mark::first-letter{transform:rotate(-45deg)}.brand-copy{display:flex;flex-direction:column}.brand-kicker{letter-spacing:.24em;font-size:9px;color:var(--gold);font-weight:750}.brand-copy strong{font-size:21px;letter-spacing:.015em}.header-age{margin-left:auto;border:1px solid #a98b5b;color:var(--gold);font-size:12px;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-weight:700}.hero{text-align:center;padding:64px 10px 43px}.hero-ornament,.ornament-rule{color:var(--gold);letter-spacing:.45em;font-size:15px;opacity:.8}.eyebrow{color:var(--gold);letter-spacing:.27em;font-size:11px;font-weight:750;margin:16px 0 12px}.hero h1{font-size:clamp(42px,7vw,76px);line-height:1.12;letter-spacing:-.025em;margin:13px 0 19px}.hero h1 em{font-weight:normal;color:var(--gold)}.hero-description{max-width:500px;margin:0 auto;color:#b6bfb4;font-size:15px}.hero-summary{display:inline-flex;align-items:center;gap:21px;padding:13px 24px;margin-top:30px;border:1px solid #6a715a80;border-radius:40px;background:#1c2927a3;color:#c0cbbf;font-size:13px}.hero-summary b{color:var(--bright)}.hero-summary i{color:var(--gold);font-style:normal}.tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;justify-content:center;border-bottom:1px solid #535f5770;margin-bottom:40px}.tab{padding:16px 19px;border:0;border-bottom:2px solid transparent;background:none;color:#a2b1aa;white-space:nowrap}.tab.selected{color:var(--gold);border-bottom-color:var(--gold);font-weight:700}.section-intro{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:28px}.section-intro .eyebrow{margin:0 0 8px}.section-intro h2{margin:0}.section-detail{font-size:12px;color:#9aa9a2;margin-bottom:7px;text-align:right}.deck-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:60px}.card-item{min-width:0}.flip-card{border:0;background:transparent;width:100%;aspect-ratio:0.73;max-height:450px;perspective:1100px;padding:0;display:block;text-align:inherit;color:inherit}.flip-inner{display:block;position:relative;width:100%;height:100%;transition:transform .72s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d}.flipped .flip-inner{transform:rotateY(180deg)}.card-face{display:flex;position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;border:2px solid #a98c55;border-radius:13px;box-shadow:0 13px 26px #0008,inset 0 0 0 5px #132024,inset 0 0 0 6px #aa925763}.card-face::before{content:'';pointer-events:none;position:absolute;inset:12px;border:1px solid #bba06d8c;border-radius:6px;z-index:2}.card-back{align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(circle at 50% 42%,#2a4140 0%,#122324 55%,#0c1b1e 100%)}.card-back::after{content:'';position:absolute;inset:23px;border:1px dashed #b39b646e;border-radius:50% 50% 7px 7px;opacity:.5}.card-corners{position:absolute;inset:30px;color:var(--gold);font-family:Georgia,serif;display:flex;align-items:flex-start;justify-content:space-between;font-size:23px}.card-corners.bottom{inset:auto 30px 24px}.card-glyph{width:48%;aspect-ratio:1;border:1px solid #c4a76875;border-radius:50%;display:grid;place-items:center;color:#e0c889;font:clamp(56px,9vw,90px) Georgia,serif;background:radial-gradient(circle,#d2b97818,transparent 65%);box-shadow:0 0 0 11px #c5ab6d0c,0 0 0 12px #bd9a5e63;z-index:2}.card-back-label{position:absolute;bottom:52px;color:#bca87b;letter-spacing:.26em;font-size:11px;text-align:center}.card-front{transform:rotateY(180deg);background:var(--front);flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;padding:24px 26px}.theme-nordic{--front:linear-gradient(145deg,#324443,#162629)}.theme-celtic{--front:linear-gradient(145deg,#344637,#192d28)}.theme-slavic{--front:linear-gradient(145deg,#573b33,#2c2121)}.theme-medieval{--front:linear-gradient(145deg,#474052,#282432)}.theme-nordic .card-glyph{color:#d8c28c}.theme-celtic .card-glyph{color:#b4cb9d}.theme-slavic .card-glyph{color:#edbd8e}.theme-medieval .card-glyph{color:#d0b8d8}.card-front .card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.8}.card-front:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0d1a1f 5%,#0d1a1fbc 26%,#0d1a1f14 68%)}.front-top{position:absolute;top:35px;color:var(--gold);z-index:3;font-size:11px;letter-spacing:.24em}.front-glyph{font:70px Georgia,serif;position:absolute;top:29%;color:#d7c18d99}.front-title{font:clamp(22px,2.75vw,34px)/1.1 Georgia,serif;position:relative;z-index:3;margin-bottom:9px;text-shadow:0 2px 8px #000a}.front-bar{position:relative;z-index:3;font-size:12px;color:#ddc79c;margin-bottom:12px}.front-rule{position:relative;z-index:3;color:var(--gold);letter-spacing:.3em}.card-actions{display:flex;gap:8px;margin-top:12px}.card-action{flex:1}.card-chip{font-size:12px;color:#d5d1b2;border:1px solid #748571;background:#22352d;border-radius:7px;padding:8px 12px;text-align:center;flex:1}.card-caption{padding:7px 0 0;color:#889b91;font-size:12px;text-align:center}.btn{border:1px solid #998257;border-radius:8px;padding:12px 17px;font-weight:650;transition:filter .2s,transform .15s;text-align:center}.btn:hover{filter:brightness(1.14)}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,#e4cd90,#bda369);color:#1d2726;border-color:#ebd8a3}.btn-ghost{background:#1f2c2e;color:#e6d7b4;border-color:#6e785e}.btn-danger{color:#eec2b0;border-color:#a16761;background:#42302b}.full{width:100%;display:block;margin-top:13px}.ranking-select{max-width:300px;margin:7px 0 24px}.ranking-list{display:grid;gap:11px;margin-bottom:60px}.rank-row{display:flex;align-items:center;gap:18px;padding:14px 18px;background:#1a2829;border:1px solid #40534b;border-radius:11px}.rank-number{width:35px;color:var(--gold);font:30px Georgia,serif}.rank-main{flex:1;min-width:0}.rank-title{font:21px Georgia,serif}.rank-sub{color:var(--muted);font-size:12px}.rank-score{min-width:75px;text-align:right}.rank-score b{color:var(--gold);font:28px Georgia,serif}.rank-score small{display:block;color:var(--muted)}.overlay{position:fixed;inset:0;z-index:20;background:#050b0de8;display:flex;align-items:center;justify-content:center;padding:18px;overflow-y:auto;backdrop-filter:blur(7px)}.age-dialog{text-align:center;max-width:440px;width:100%;padding:35px 30px;background:radial-gradient(circle at top,#2d3b36,#101c1e 78%);border:1px solid #a78e5e;box-shadow:0 26px 70px #000b,inset 0 0 0 8px #192624,inset 0 0 0 9px #95804b7a;border-radius:15px}.age-seal{font:65px Georgia,serif;color:var(--gold);height:80px}.age-dialog h2{font-size:44px}.age-dialog>p:not(.eyebrow){color:#bbc6bd}.age-dialog .age-footnote{font-size:11px;color:#829088!important;margin:19px 0 0}.detail-dialog{position:relative;max-width:660px;width:100%;max-height:min(92vh,950px);overflow-y:auto;overscroll-behavior:contain;border:1px solid #9d8855;border-radius:14px;background:#152325;box-shadow:0 18px 80px #000d}.close-btn{position:sticky;float:right;top:15px;right:15px;margin:15px 15px -55px 0;background:#111c1ce0;color:var(--bright);border:1px solid #977e51;width:39px;height:39px;border-radius:50%;z-index:5}.detail-banner{height:255px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#394b40,#132325)}.detail-banner img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.detail-symbol{font:100px Georgia,serif;color:#cdb67b70}.detail-content{padding:30px 32px 35px}.detail-content h2{margin:0 0 10px;font-size:42px}.detail-meta{font-size:13px;color:#bfaa80}.detail-content h3{font-size:25px;color:var(--gold);margin:24px 0 10px}.detail-content .copy{white-space:pre-line;color:#d9dfd6}.detail-video{width:100%;border-radius:8px;background:#000;max-height:300px}.divider-gold{border:0;border-top:1px solid #706f5399;margin:28px 0}.rating-fields{display:grid;gap:13px;margin:20px 0}.rating-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(115px,200px) 29px;gap:12px;align-items:center}.rating-field label{font-size:14px}.rating-field strong{color:var(--gold);font-size:17px;text-align:right}.rating-field input{width:100%;accent-color:#c2a569}.collection-empty,.empty-state{grid-column:1/-1;border:1px dashed #57675d;border-radius:12px;text-align:center;color:#adb9b0;padding:45px 16px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.admin-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr);gap:25px;margin:20px 0 70px}.admin-form,.admin-right{background:#18272a;border:1px solid #506052;border-radius:12px;padding:24px}.admin-form h3,.admin-right h3{margin:0 0 20px}.field-label{display:block;color:#d4c9a9;font-size:13px;margin-bottom:14px}.control{display:block;width:100%;padding:11px 12px;border-radius:7px;border:1px solid #566b62;background:#101e20;color:var(--bright);margin-top:6px;min-width:0}.control:focus{border-color:var(--gold)}textarea.control{resize:vertical}.file-control{font-size:11px}.checkline{display:block;font-size:13px;color:#b7c2b4;margin:10px 0}.checkline input{accent-color:#d4b978}.form-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.admin-list{display:grid;gap:10px}.admin-list-row{padding:13px;border:1px solid #4b5d54;border-radius:9px;display:flex;align-items:center;gap:8px}.admin-list-copy{flex:1;min-width:0}.admin-list-copy strong{display:block;font-size:14px}.admin-list-copy small{display:block;color:var(--muted)}.admin-list-row .btn{padding:7px 9px;font-size:12px}.space-top{margin-top:34px!important}.export-buttons{display:flex;gap:8px;flex-wrap:wrap}.export-buttons .btn{padding:9px 11px;font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.stat{border:1px solid #5d6b52;background:#1a2928;border-radius:8px;padding:14px;text-align:center}.stat b{display:block;font:28px Georgia,serif;color:var(--gold)}.stat span{font-size:11px;color:var(--muted)}.toast{position:fixed;z-index:40;bottom:25px;left:50%;transform:translateX(-50%);background:#263b35;border:1px solid #c7b47e;color:var(--bright);padding:12px 22px;border-radius:10px;box-shadow:0 5px 25px #0008;max-width:calc(100vw - 30px)}footer{text-align:center;color:#9dad9d;border-top:1px solid #485549a8;padding:30px 8px 40px;font-size:12px}footer span{color:var(--gold)}footer p{font-size:11px;margin:10px auto 0;max-width:450px}.demo-strip{border:1px solid #b18f59;color:#e5c88c;background:#2f271b;padding:9px 18px;text-align:center;border-radius:7px;margin-top:14px;font-size:13px}
@media(max-width:770px){.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.app-shell{padding:0 14px}.card-front{padding:16px}.front-top{top:28px;font-size:9px}.front-title{font-size:clamp(18px,4vw,28px)}.card-back-label{font-size:8px;bottom:32px}.card-corners{inset:22px;font-size:15px}.card-corners.bottom{inset:auto 22px 14px}.admin-layout{grid-template-columns:1fr}.section-intro{align-items:start;flex-direction:column}.section-detail{text-align:left}.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.site-header{height:74px;gap:12px}.brand-mark{width:43px;height:43px;font-size:32px}.brand-copy strong{font-size:17px}.brand-kicker{font-size:8px}.header-age{width:33px;height:33px}.hero{padding:46px 0 30px}.hero-description{font-size:14px}.hero-summary{padding:9px 14px;gap:11px}.tabs{justify-content:start;margin-bottom:30px}.tab{font-size:13px;padding:13px 12px}.section-intro{margin-bottom:20px}.deck-grid{gap:12px}.card-face{border-radius:10px}.card-face::before{inset:9px}.card-back-label{letter-spacing:.15em}.card-glyph{font-size:48px}.front-glyph{font-size:45px}.front-bar{font-size:10px}.front-title{font-size:20px}.card-actions .btn{font-size:12px;padding:10px 6px}.detail-content{padding:23px 19px}.detail-content h2{font-size:34px}.detail-banner{height:200px}.rating-field{grid-template-columns:minmax(0,1fr) 115px 21px;gap:6px}.rating-field label{font-size:12px}.form-row{grid-template-columns:1fr}.admin-form,.admin-right{padding:16px}.age-dialog{padding:31px 23px}.age-dialog h2{font-size:39px}.rank-title{font-size:17px}.rank-row{gap:10px;padding:12px 10px}.rank-number{width:27px;font-size:25px}.rank-score{min-width:52px}.rank-score b{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.admin-ranking-section{margin-top:25px;border:1px solid #4c5f51;border-radius:10px;background:#192728;padding:18px 20px}.admin-ranking-header{display:flex;align-items:center;justify-content:space-between;gap:15px}.admin-ranking-header h3{margin-bottom:12px}.admin-ranking-header .field-label{min-width:190px}.admin-ranking-wrap{overflow-x:auto}.admin-ranking-table{width:100%;border-collapse:collapse;text-align:left;min-width:450px}.admin-ranking-table th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#bda77b;font-weight:600}.admin-ranking-table td,.admin-ranking-table th{border-top:1px solid #475a50;padding:11px 9px}.admin-ranking-table td{font-size:13px;color:#dce2d6}.admin-ranking-table td:last-child{color:#dbbd82;font-size:17px}.admin-ranking-table td small{display:block;color:#a5b6a8;font-size:11px}.admin-ranking-table .draft{font-style:italic;color:#b3a487}@media(max-width:460px){.admin-ranking-header{display:block}.admin-ranking-header .field-label{max-width:230px}.admin-ranking-section{padding:14px 12px}}

/* Showcase cards: artwork stays separate from editable content. */
.card-front{background:#181a18}
.card-front .card-photo{opacity:1;object-position:center 45%}
.card-front:after{background:linear-gradient(180deg,#0d100d75 0%,transparent 24%,transparent 48%,#0b100ede 83%,#090d0cf7 100%)}
.front-title{color:#f6e0aa;font-size:clamp(25px,3vw,39px);text-shadow:0 2px 3px #080907,0 6px 18px #000}
.front-top{color:#f4d591;text-shadow:0 2px 8px #000}
.front-bar{color:#e5d1ab;text-shadow:0 2px 8px #000}
.card-face{border-color:#ba9355;box-shadow:0 13px 26px #0008,inset 0 0 0 4px #101715,inset 0 0 0 6px #d0a86c75}
.card-face::before{border-color:#e1bd7870}
.detail-dialog{border:2px solid #b69159;background:radial-gradient(circle at 50% 15%,#34291f,#171d1b 65%);box-shadow:0 18px 80px #000d,inset 0 0 0 6px #131a18,inset 0 0 0 7px #9d7c4b87}
.detail-banner{height:clamp(340px,57vw,540px);background:#101917;overflow:hidden}
.detail-banner img{object-position:center 42%}
.detail-banner::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 68%,#171d1b 100%);pointer-events:none}
.detail-content{padding:22px clamp(22px,6vw,54px) 42px;position:relative;text-align:left}
.detail-content::before{content:'✦';display:block;text-align:center;font-size:30px;color:#c79d60;margin:-16px 0 12px}
.detail-content>.eyebrow{text-align:center;margin:0 0 10px}
.detail-content h2{text-align:center;color:#f0d09b;font-size:clamp(38px,7vw,59px);line-height:1.05;text-shadow:0 2px 12px #0009;margin-bottom:13px}
.detail-meta{text-align:center;color:#c8b895;padding-bottom:22px;border-bottom:1px solid #9c784562}
.detail-content .detail-section-heading{display:flex;align-items:center;gap:13px;color:#c88768;font-size:clamp(27px,4vw,36px);margin:30px 0 12px}
.detail-section-heading::before{content:'✥';width:44px;height:44px;display:grid;place-items:center;flex:none;border:1px solid #a9804f;border-radius:50%;color:#cda96c;font:26px Georgia,serif;background:#251f19}
.detail-content .copy{color:#e7d8b8;font:clamp(16px,2.4vw,20px)/1.55 Georgia,'Times New Roman',serif;white-space:pre-line;margin-left:57px}
.serving-note{border:1px solid #9d764b;border-radius:8px;background:#231d18;color:#e4c897;font:italic 18px/1.5 Georgia,serif;text-align:center;padding:13px 18px;margin:30px 0 0}
.detail-video{margin-top:16px}
@media(max-width:460px){.front-title{font-size:20px}.detail-banner{height:340px}.detail-content{padding:18px 22px 32px}.detail-content .copy{margin-left:0}.detail-section-heading::before{width:38px;height:38px;font-size:22px}.serving-note{font-size:15px}}

/* Card turn and legend reveal. */
.flip-inner{transition:transform .78s cubic-bezier(.18,.8,.2,1)}
.flip-card.is-turning{animation:card-lift .78s ease-in-out both}
.card-sheen{position:absolute;z-index:2;top:-15%;left:-65%;width:58%;height:130%;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,#fff8d838,transparent);transform:skewX(-22deg)}
.flip-card.just-opened .card-sheen{animation:card-shine 1.05s ease-out .18s both}
.flip-card.is-turning+.card-actions{pointer-events:none}
.card-actions.is-revealing{animation:actions-rise .36s ease-out .55s both}
@keyframes card-lift{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-8px) scale(1.035)}}
@keyframes card-shine{0%{opacity:0;transform:translateX(0) skewX(-22deg)}25%{opacity:.7}75%{opacity:.35}100%{opacity:0;transform:translateX(330%) skewX(-22deg)}}
@keyframes actions-rise{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

#detail-overlay{perspective:1400px}
#detail-overlay.is-opening{animation:veil-in .28s ease-out both}
#detail-overlay.is-opening .detail-dialog{will-change:transform,opacity;animation:legend-unfold .58s cubic-bezier(.2,.8,.2,1) both}
#detail-overlay.is-opening .detail-banner img{animation:banner-settle .72s ease-out both}
#detail-overlay.is-opening .detail-content>.eyebrow,#detail-overlay.is-opening .detail-content>h2,#detail-overlay.is-opening .detail-meta{animation:content-rise .42s ease-out .18s both}
#detail-overlay.is-opening .detail-section-heading,#detail-overlay.is-opening .copy,#detail-overlay.is-opening .serving-note{animation:content-rise .42s ease-out .28s both}
#detail-overlay.is-closing{animation:veil-out .25s ease-in both}
#detail-overlay.is-closing .detail-dialog{will-change:transform,opacity;animation:legend-fold .25s ease-in both}
@keyframes veil-in{from{opacity:0}to{opacity:1}}
@keyframes veil-out{from{opacity:1}to{opacity:0}}
@keyframes legend-unfold{from{opacity:.4;transform:translate(var(--card-origin-x,0px),var(--card-origin-y,24px)) scale(var(--card-origin-scale,.7)) rotateX(-7deg)}to{opacity:1;transform:translate(0,0) scale(1) rotateX(0)}}
@keyframes legend-fold{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.95)}}
@keyframes banner-settle{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes content-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
