@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800&family=Open+Sans:wght@800&family=Outfit:wght@500;600;700&display=swap");:root{--background:oklch(0.975 0.006 60);--foreground:oklch(0.16 0.018 30);--card:oklch(1 0 0);--primary:oklch(0.6 0.24 18);--primary-fg:oklch(1 0 0);--muted:oklch(0.5 0.022 30);--border:oklch(0.88 0.014 55);--surface:oklch(0.95 0.012 55);--gold:oklch(0.7 0.18 72);--danger:oklch(0.55 0.22 25);--radius:1rem;--radius-btn:0.65rem;--shadow-card:0 8px 28px color-mix(in oklab,black 8%,transparent);--font-ui:"Nunito",system-ui,sans-serif;--font-display:"Outfit",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;color:var(--foreground);font-family:var(--font-ui);background:var(--background)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.wrap{width:min(1100px,calc(100% - 2rem));margin:0 auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in oklab,var(--background) 86%,white);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in oklab,var(--border) 70%,transparent);margin-bottom:.5rem}.brand{font-family:var(--font-display);font-weight:700;font-size:1.25rem}.nav-actions{display:flex;gap:.55rem;flex-wrap:wrap}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--card);color:var(--foreground);border-radius:var(--radius-btn);padding:.65rem 1.1rem;cursor:pointer;font-weight:700;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;box-shadow:0 1px 0 color-mix(in oklab,white 70%,transparent)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);border-color:transparent;color:var(--primary-fg);box-shadow:0 8px 22px color-mix(in oklab,var(--primary) 28%,transparent)}.btn-primary:disabled,.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-lg{display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1.4rem;font-size:1.05rem;border-radius:.9rem}.hero{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:1rem;gap:1rem;padding:.75rem 0 1.5rem}@media (max-width:800px){.hero{grid-template-columns:1fr}}.hero-panel{border-radius:calc(var(--radius) - .1rem);border:1px solid var(--border);background:var(--card);overflow:hidden;box-shadow:var(--shadow-card);min-height:300px}.hero-visual{min-height:300px;background-size:cover;background-position:top;display:flex;flex-direction:column;justify-content:flex-end;padding:1.25rem;position:relative;color:white}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,12,10,.78),transparent 58%);pointer-events:none}.hero-visual>*{position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:var(--primary);margin-bottom:.35rem}.hero-visual .eyebrow{color:#ffd4c8}h1,h2,h3{font-family:var(--font-display);font-weight:700;margin:0 0 .45rem}.muted{color:var(--muted)}.hero-visual .muted{color:rgba(255,255,255,.85)}.section{padding:1.25rem 0 2rem}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.9rem}.section-title{display:flex;align-items:center;gap:.55rem}.section-title:before{content:"";width:.35rem;height:1.15rem;border-radius:999px;background:var(--primary);box-shadow:0 0 16px color-mix(in oklab,var(--primary) 45%,transparent)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:.85rem;gap:.85rem}.char-card{border:1px solid var(--border);border-radius:calc(var(--radius) - .25rem);background:var(--card);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-card)}.char-card.cooldown{opacity:.55}.char-art{aspect-ratio:1;background-size:cover;background-position:50%}.char-body{padding:.75rem;display:flex;flex-direction:column;gap:.4rem}.char-name{font-weight:800}.stats-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);font-weight:600}.winner-strip{display:grid;grid-template-columns:220px 1fr;grid-gap:0;gap:0;border:1px solid var(--border);border-radius:calc(var(--radius) - .1rem);overflow:hidden;background:var(--card);box-shadow:var(--shadow-card)}@media (max-width:700px){.winner-strip{grid-template-columns:1fr}}.winner-art{min-height:220px;background-size:cover;background-position:50%}.winner-copy{padding:1.1rem 1.2rem}.story-preview{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);line-height:1.5}.banner{border:1px solid var(--border);background:var(--card);color:var(--foreground);padding:1rem 1.1rem;border-radius:calc(var(--radius) - .15rem);margin:.75rem 0 1rem;box-shadow:var(--shadow-card)}.banner.error{border-color:color-mix(in oklab,var(--danger) 35%,var(--border));background:color-mix(in oklab,var(--danger) 8%,white)}.banner.cta{display:grid;grid-gap:.85rem;gap:.85rem;padding:1.25rem 1.35rem;background:linear-gradient(145deg,color-mix(in oklab,var(--primary) 10%,white),white 55%);border-color:color-mix(in oklab,var(--primary) 28%,var(--border))}.banner.cta h2{margin:0;font-size:1.35rem}.banner.cta p{margin:0;color:var(--muted);line-height:1.5}.admin-shell{max-width:720px;margin:2rem auto;padding:0 1rem 3rem}.admin-card{border:1px solid var(--border);background:var(--card);border-radius:calc(var(--radius) - .1rem);padding:1.25rem;box-shadow:var(--shadow-card)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field input,.field select,.field textarea{border-radius:var(--radius-btn);border:1px solid var(--border);background:var(--surface);color:var(--foreground);padding:.65rem .75rem}.field textarea{min-height:160px;resize:vertical}.lore-full{max-width:800px;margin:0 auto;padding:2rem 1rem 4rem}.lore-full img{width:100%;border-radius:calc(var(--radius) - .1rem);border:1px solid var(--border);box-shadow:var(--shadow-card)}.lore-story{white-space:pre-wrap;line-height:1.7;color:var(--muted);margin-top:1.25rem}@keyframes love-banner-gradient-drift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.love-banner{position:relative;display:flex;overflow:hidden;border-radius:1.1rem;border:1px solid color-mix(in oklab,var(--border) 70%,transparent);box-shadow:0 16px 40px color-mix(in oklab,black 12%,transparent);min-height:clamp(280px,38vw,420px);height:clamp(280px,38vw,420px);background-size:180% 180%}.love-banner-drift{animation:love-banner-gradient-drift 10s ease-in-out infinite}@media (max-width:800px){.love-banner{flex-direction:column;height:auto;min-height:0}}.love-banner-orbs{pointer-events:none;position:absolute;inset:0;overflow:hidden}.love-banner-orbs .orb{position:absolute;border-radius:999px;background:rgba(255,255,255,.16);filter:blur(70px);transform:translate(-50%,-50%)}.love-banner-orbs .orb-a{left:55%;top:50%;width:clamp(200px,35vw,380px);height:clamp(200px,35vw,380px);background:rgba(255,255,255,.18);filter:blur(80px);transform:translate(-50%,-50%) scale(1.26)}.love-banner-orbs .orb-b{left:calc(55% + 280px);top:calc(50% - 220px);width:clamp(160px,28vw,280px);height:clamp(160px,28vw,280px);background:rgba(255,255,255,.14);transform:translate(-50%,-50%) scale(.84) rotate(16deg)}.love-banner-orbs .orb-c{left:calc(55% + 160px);top:calc(50% + 260px);width:clamp(180px,30vw,320px);height:clamp(180px,30vw,320px);background:rgba(255,255,255,.12);transform:translate(-50%,-50%) scale(.94) rotate(-12deg)}.love-banner-orbs .orb-d{left:calc(55% + 480px);top:52%;width:clamp(120px,22vw,240px);height:clamp(120px,22vw,240px);background:rgba(255,255,255,.1);transform:translate(-50%,-50%) scale(.62) rotate(24deg)}.love-banner-texture{pointer-events:none;position:absolute;inset:0;overflow:hidden;z-index:2;opacity:.16;transform:rotate(-18deg) scale(1.6);transform-origin:center}.love-banner-texture span{position:absolute;inset:-15%;display:flex;align-items:center;justify-content:center;white-space:pre;text-align:left;font-weight:800;text-transform:uppercase;line-height:1.15;font-size:clamp(22px,4.5vw,52px);letter-spacing:.06em;color:rgba(255,255,255,.85);-webkit-user-select:none;-moz-user-select:none;user-select:none}.love-banner-copy{position:relative;z-index:10;flex:1 1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.85rem;padding:1.5rem 1.5rem 1.5rem 1.75rem}.love-banner-eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82)}.love-banner-name-wrap{position:relative;display:inline-block;max-width:100%}.love-banner-name{margin:0;font-family:Open Sans,Nunito,system-ui,sans-serif;font-size:clamp(32px,5vw,72px);font-weight:800;line-height:.95;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 12px 36px rgba(0,0,0,.42),0 2px 6px rgba(0,0,0,.28)}.love-banner-underline{position:absolute;left:0;bottom:-8px;height:6px;width:35%;border-radius:999px}.love-banner-quote{max-width:36rem;max-height:8.5rem;overflow-y:auto;border-radius:14px;border-left:4px solid;padding:.9rem 1.1rem;background:rgba(0,0,0,.52);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 30px rgba(0,0,0,.18)}.love-banner-quote p{margin:0;color:#fff;font-size:1.05rem;line-height:1.3}.love-banner-stats{margin:0;color:rgba(255,255,255,.88);font-weight:700;font-size:.95rem}.love-banner-actions{margin-top:.15rem}.love-banner-btn{background:#fff!important;color:#1a1a1a!important;border:none!important;box-shadow:0 10px 28px rgba(0,0,0,.22)!important}.love-banner-cooldown{color:rgba(255,255,255,.85);font-weight:700}.love-banner-art{position:relative;z-index:10;flex:0 0 45%;min-height:180px;overflow:hidden}@media (min-width:801px){.love-banner-art{height:100%;min-height:0}}.love-banner-art img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:drop-shadow(0 18px 40px rgba(0,0,0,.35))}.love-banner-fallback{position:absolute;right:1rem;bottom:1rem;width:5rem;height:5rem;border-radius:999px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.25);color:#fff;font-size:2rem;font-weight:800}