*{box-sizing:border-box}
:root{color-scheme:light;font-family:system-ui,sans-serif;--cream:#fbf1e1;--ink:#3e2330;--muted:#634955;--accent:#692b41;--gold:#9b6b37;--night:#301922;--glow:#80515c}
[hidden]{display:none!important}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 4%,var(--glow),transparent 58%),var(--night);color:var(--cream)}
body[data-week="2"]{--night:#38242b;--glow:#956852;--accent:#752d4a}
body[data-week="3"]{--night:#172b27;--glow:#4a6250;--accent:#315444}
body[data-week="4"]{--night:#182b25;--glow:#416953;--accent:#713547}
body[data-week="5"]{--night:#502e3f;--glow:#a66c7d;--accent:#773b58;--cream:#fff0e9}
.sky{pointer-events:none;position:fixed;inset:0;opacity:.5;background-image:radial-gradient(circle,#ffe2af 1px,transparent 2px),radial-gradient(circle,#ffe2af 1px,transparent 2px);background-size:67px 92px,121px 137px;background-position:8px 2px,34px 44px;mask-image:linear-gradient(black,transparent 75%)}
[data-week="2"] .sky,[data-week="4"] .sky{opacity:.85;background-size:47px 58px,81px 99px}
[data-week="3"] .emblem::before,[data-week="4"] .emblem::before{content:"❋";position:absolute;right:-23px;top:-5px;font-size:1.4rem}
[data-week="2"] .emblem::before{content:"🎀";position:absolute;right:-23px;top:-5px;font-size:1.3rem}
[data-week="4"] .emblem::after{content:"❄";position:absolute;left:-24px;bottom:0;font-size:1.4rem}
[data-week="5"] .emblem::before{content:"❀";position:absolute;right:-28px;top:0}
[data-week="5"] .emblem::after{content:"❋";position:absolute;left:-24px;bottom:0}
.birthday .emblem{animation:bloom 2s ease-in-out 3}
.birthday .hero{animation:glow 1.8s ease-in-out 3 alternate}
@keyframes bloom{50%{transform:scale(1.13);box-shadow:0 0 24px #ffe4b3}}
@keyframes glow{to{text-shadow:0 0 19px #f9ccac99}}
.shell{position:relative;width:min(100% - 28px,650px);margin:auto}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:64px;border-bottom:1px solid #f7dfad55;gap:10px}
.brand,.eyebrow,.caption{font-size:.73rem;letter-spacing:.13em;font-weight:700}
.quiet{background:transparent;border:1px solid #ffdfb36f;border-radius:999px;color:inherit;padding:8px 13px}
.hero{text-align:center;padding:40px 10px 32px}
.emblem{position:relative;margin:0 auto 20px;display:grid;place-items:center;width:60px;height:60px;border:1px solid #ebcb91;border-radius:50%;font-size:2.2rem;color:#ffe3b1}
.eyebrow{margin:0 0 8px;color:inherit}
h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.1;margin:0}
h1{font-size:clamp(2.55rem,10vw,4.65rem);letter-spacing:-.04em}
h1 em{color:#ffdaa9;font-weight:400}
.birthday h1{font-size:clamp(2.2rem,9vw,4rem)}
.subtitle{line-height:1.5;margin:.8rem 0 0}
.card{background:var(--cream);color:var(--ink);padding:clamp(19px,5vw,34px);border:1px solid #f1dbb9;border-radius:23px;box-shadow:0 20px 50px #130a1166;margin:0 0 15px}
.card h2{font-size:clamp(1.8rem,7vw,2.65rem);margin:0 0 8px}
.card .eyebrow,.caption,.status{color:var(--muted)}
.status{line-height:1.5;margin:10px 0}
.status:empty{display:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer;min-height:44px}
button:disabled{cursor:wait;opacity:.65}
button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #bd8350;outline-offset:3px}
label{display:grid;gap:5px;font-size:.9rem;font-weight:650}
input:not([type="checkbox"]),textarea,select{border:1px solid #977b70;border-radius:9px;background:#fffcf7;color:var(--ink);padding:9px;min-width:0;max-width:100%}
form{display:grid;gap:10px;margin-top:18px}
.primary{background:var(--accent);border:1px solid var(--accent);color:#fff8ef;border-radius:11px;padding:10px 18px;font-weight:650}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px;background:#1a101852;border-radius:14px;padding:5px}
.tabs button{background:transparent;color:var(--cream);border:0;border-radius:10px}
.tabs button[aria-pressed="true"]{background:var(--cream);color:var(--ink)}
.boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.box{border:1px solid #bb9065;border-radius:13px;background:linear-gradient(135deg,#fff5e0,#e9cfaa);min-height:76px;font-size:clamp(1.5rem,8vw,2.65rem)}
.box:hover{background:#ffe9c2}
.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:16px;text-align:center}
.day,.weekday{display:grid;place-items:center;min-height:31px}
.weekday{font-size:.72rem;color:var(--muted);font-weight:700}
.day{border-radius:8px;background:#53304410}
.day[aria-current]{background:var(--accent);color:#fff;font-weight:700}
.wheel-layout{width:min(100%,350px);aspect-ratio:1;position:relative;margin:22px auto 18px}
.wheel{position:absolute;inset:0;border-radius:50%;border:5px solid #b78952;overflow:hidden;background:repeating-conic-gradient(from -15deg,#754355 0deg 29.5deg,#d9af78 29.5deg 30deg,#ecd6b2 30deg 59.5deg,#d9af78 59.5deg 60deg);box-shadow:0 4px 15px #41263855}
.sector{position:absolute;inset:0;display:flex;justify-content:center;align-items:flex-start;transform:rotate(var(--angle));padding-top:6.5%}
.sector span{display:grid;place-items:center;transform:rotate(var(--reverse));width:13%;aspect-ratio:1;border-radius:50%;background:#fff5e6;color:#542d42;font-size:clamp(.8rem,5vw,1.45rem);overflow:hidden}
.sector img{width:100%;height:100%;object-fit:cover}
.pin,.hub{position:absolute;z-index:1;left:50%;transform:translateX(-50%);color:#562136}
.pin{top:-15px;text-shadow:0 1px 0 #fff1d2;font-size:1.55rem}
.hub{top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:19%;aspect-ratio:1;border-radius:50%;background:#f2d3a1;border:2px solid #c89a62}
.spin{display:block;margin:auto}
.options{margin-top:14px;font-size:.9rem}
.options summary{cursor:pointer;min-height:44px;align-content:center}
.options ul{display:grid;grid-template-columns:repeat(2,1fr);padding:0;list-style:none;gap:7px}
.prize{margin:12px 0;display:grid;grid-template-columns:60px 1fr;gap:4px 12px;align-items:center;padding:10px;background:#6e365810;border-radius:10px}
.prize img,.prize-icon{width:60px;height:60px;object-fit:cover;border-radius:7px;grid-row:span 2;background:#ebd4aa}
.prize-icon{display:grid;place-items:center;color:#602841}
.prize small{color:var(--muted)}
footer{text-align:center;padding:17px 0 27px;color:#ffe8c8;font:italic 1rem Georgia,serif}
footer span{padding-left:5px}
.admin{width:min(100% - 28px,850px)}
.admin .hero{padding:24px 0}
.admin details{margin:10px 0;padding:8px;border:1px solid #b9a099;border-radius:10px}
.admin summary{cursor:pointer;min-height:34px;align-content:center}
.admin .field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}
.admin .check{display:flex;align-items:center;gap:8px}
.admin textarea{min-height:64px;resize:vertical}
.admin .thumb{width:60px;height:60px;object-fit:cover}
.admin .plain{padding-left:1.4rem;line-height:1.65}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
