:root{--bg-parchment: #FBF7F0;--bg-card: #FFFDF9;--bg-subtle: #F3ECE0;--ink-primary: #1E1815;--ink-secondary: #5A4E46;--ink-muted: #7C6E65;--lingon-red: #9E2A2B;--lingon-red-hover: #7E1F20;--lingon-soft: #F9EBEB;--spruce-green: #1E3F2B;--spruce-soft: #E8F0EB;--saffron-gold: #D49A36;--saffron-soft: #FCF4E3;--border-warm: #E4D9C8;--border-strong: #C9B9A3;--font-serif: "Fraunces", Georgia, serif;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--bg-parchment);color:var(--ink-primary);font-family:var(--font-sans);line-height:1.6;scroll-behavior:smooth}body{min-block-size:100dvh;display:flex;flex-direction:column;background-image:radial-gradient(rgba(158,42,43,.04) 1px,transparent 0);background-size:28px 28px}#root{min-block-size:100dvh;display:flex;flex-direction:column}#snow-canvas{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;display:block}:focus-visible{outline:3px solid var(--saffron-gold);outline-offset:2px}.visually-hidden:where(:not(:focus-within,:active)){position:absolute!important;clip-path:inset(50%)!important;overflow:hidden!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;white-space:nowrap!important}@media print{.site-header,.hero,.filter-bar,.calendar-controls button,.save-btn,.site-footer,#snow-canvas{display:none!important}body{background:#fff}.idea-card,.hatch-card{break-inside:avoid;box-shadow:none;border:1px solid #999}}.site-header{position:sticky;inset-block-start:0;z-index:40;background-color:#fbf7f0f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-block-end:2px solid var(--border-warm)}.header-inner{max-inline-size:1240px;margin-inline:auto;padding-block:.85rem;padding-inline:1.25rem;display:flex;flex-wrap:wrap;align-items:safe center;justify-content:space-between;gap:.85rem}.brand{display:flex;align-items:safe center;gap:.75rem;text-decoration:none;color:var(--ink-primary)}.brand-mark{inline-size:40px;block-size:40px;border-radius:50%;background-color:var(--lingon-red);color:var(--bg-card);display:grid;place-content:center;font-family:var(--font-serif);font-weight:700;font-size:1.25rem;border:2px solid var(--saffron-gold);flex-shrink:0}.brand-text{display:flex;flex-direction:column}.brand-title{font-family:var(--font-serif);font-size:1.4rem;font-weight:700;line-height:1.1;letter-spacing:-.02em}.brand-subtitle{font-size:.76rem;color:var(--ink-secondary)}.main-nav{display:flex;flex-wrap:wrap;flex-wrap:balance;gap:.35rem;margin-inline:auto}.nav-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid transparent;padding-block:.5rem;padding-inline:.9rem;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.9rem;font-weight:600;color:var(--ink-secondary);cursor:pointer;display:inline-flex;align-items:safe center;gap:.45rem}.nav-tab:hover{color:var(--ink-primary);background-color:var(--bg-subtle)}.nav-tab[aria-selected=true]{background-color:var(--spruce-green);color:var(--bg-card);border-color:var(--spruce-green)}.badge-count{background-color:var(--saffron-gold);color:var(--ink-primary);font-size:.75rem;font-weight:700;padding-inline:.45rem;padding-block:.05rem;border-radius:999px}.header-actions{display:flex;align-items:safe center;gap:.55rem}.burger-btn{display:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding-block:.45rem;padding-inline:.75rem;font-family:var(--font-sans);font-size:.92rem;font-weight:700;color:var(--ink-primary);cursor:pointer;align-items:safe center;gap:.45rem}.mobile-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1e181580;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:45}.mobile-drawer{position:fixed;inset-block-start:0;inset-inline-end:0;inline-size:min(330px,88dvw);block-size:100dvh;background-color:var(--bg-parchment);border-inline-start:2px solid var(--border-strong);z-index:50;padding:1.25rem;display:flex;flex-direction:column;gap:1.15rem;overflow-y:auto;overscroll-behavior:contain;box-shadow:-10px 0 30px #1e181540}.mobile-drawer-header{display:flex;align-items:safe center;justify-content:space-between;padding-block-end:.85rem;border-block-end:1px solid var(--border-warm)}.mobile-nav-list{display:flex;flex-direction:column;gap:.45rem}.mobile-nav-list .nav-tab{inline-size:100%;justify-content:flex-start;padding-block:.75rem;padding-inline:1rem;font-size:1rem;border:1px solid var(--border-warm);background-color:var(--bg-card)}.mobile-nav-list .nav-tab[aria-selected=true]{background-color:var(--spruce-green);color:var(--bg-card);border-color:var(--spruce-green)}.mobile-drawer-footer{margin-block-start:auto;padding-block-start:1rem;border-block-start:1px solid var(--border-warm);display:flex;flex-direction:column;gap:.65rem}@media(max-width:960px){.main-nav,.header-actions{display:none}.burger-btn{display:inline-flex}}.hero{max-inline-size:1240px;margin-inline:auto;padding-block:1.85rem 1.5rem;padding-inline:1.25rem}.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:1.75rem;background-color:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:1.85rem;box-shadow:0 6px 0 var(--border-warm)}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;padding:1.25rem}}.hero-content{display:flex;flex-direction:column;justify-content:center;gap:.9rem}.countdown-pill{align-self:flex-start;background-color:var(--saffron-soft);border:1px solid var(--saffron-gold);color:var(--ink-primary);font-size:.84rem;font-weight:600;padding-block:.3rem;padding-inline:.85rem;border-radius:999px}.hero-title{font-family:var(--font-serif);font-size:clamp(1.7rem,3.2vw,2.65rem);line-height:1.15;color:var(--ink-primary);max-inline-size:24ch}.hero-lead{font-size:1rem;color:var(--ink-secondary);max-inline-size:58ch}.hero-status-bar{display:flex;flex-wrap:wrap;align-items:safe center;gap:.65rem;padding-block-start:.25rem}.main-container{max-inline-size:1240px;inline-size:100%;margin-inline:auto;padding-inline:1.25rem;padding-block-end:4rem;flex:1}.section-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-block:1.25rem 1.15rem;padding-block-end:.95rem;border-block-end:1px solid var(--border-warm)}.section-title{font-family:var(--font-serif);font-size:clamp(1.45rem,2.5vw,2.05rem);color:var(--ink-primary)}.section-subtitle{color:var(--ink-secondary);font-size:.96rem;max-inline-size:65ch}.site-footer{border-block-start:1px solid var(--border-warm);background-color:var(--bg-subtle);padding-block:1.75rem;padding-inline:1.25rem;margin-block-start:auto}.footer-inner{max-inline-size:1240px;margin-inline:auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:safe center;gap:1rem;color:var(--ink-secondary);font-size:.88rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-strong);background-color:var(--bg-card);color:var(--ink-primary);font-family:var(--font-sans);font-size:.9rem;font-weight:600;padding-block:.55rem;padding-inline:1rem;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:safe center;justify-content:center;gap:.45rem;text-decoration:none}.btn:hover{border-color:var(--ink-primary);background-color:var(--bg-subtle)}.btn-primary{background-color:var(--lingon-red);color:var(--bg-card);border-color:var(--lingon-red)}.btn-primary:hover{background-color:var(--lingon-red-hover);border-color:var(--lingon-red-hover);color:var(--bg-card)}.btn-spruce{background-color:var(--spruce-green);color:var(--bg-card);border-color:var(--spruce-green)}.btn-spruce:hover{background-color:#152d1f;color:var(--bg-card)}.btn-sm{padding-block:.38rem;padding-inline:.75rem;font-size:.83rem}.spotlight-card{background-color:var(--lingon-soft);border:2px dashed var(--lingon-red);border-radius:var(--radius-md);padding:1.35rem;display:flex;flex-direction:column;justify-content:space-between;gap:.85rem}.spotlight-header{display:flex;flex-wrap:wrap;align-items:safe center;justify-content:space-between;gap:.5rem}.spotlight-badge{background-color:var(--lingon-red);color:var(--bg-card);font-size:.78rem;font-weight:700;padding-block:.2rem;padding-inline:.6rem;border-radius:var(--radius-sm)}.spotlight-title{font-family:var(--font-serif);font-size:1.3rem;color:var(--ink-primary)}.spotlight-desc{font-size:.93rem;color:var(--ink-secondary)}.spotlight-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-block-start:auto}.filter-bar{display:flex;flex-wrap:wrap;flex-wrap:balance;gap:.5rem;align-items:safe center;margin-block-end:1.4rem}.filter-pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-strong);background-color:var(--bg-card);color:var(--ink-secondary);padding-block:.45rem;padding-inline:.95rem;border-radius:999px;font-family:var(--font-sans);font-size:.86rem;font-weight:600;cursor:pointer}.filter-pill:hover{border-color:var(--ink-primary);color:var(--ink-primary)}.filter-pill[aria-pressed=true]{background-color:var(--lingon-red);border-color:var(--lingon-red);color:var(--bg-card)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(295px,1fr));gap:1.25rem}.idea-card{grid-row:span 4;display:grid;grid-template-rows:auto auto 1fr auto;grid-template-rows:subgrid;gap:.75rem;background-color:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:1.25rem;box-shadow:0 3px 0 var(--border-warm)}.idea-card.is-hidden{opacity:.65;border-style:dashed;background-color:var(--bg-subtle)}.card-meta-row{display:flex;flex-wrap:wrap;align-items:safe center;justify-content:space-between;gap:.45rem}.meta-tag{font-size:.76rem;font-weight:600;padding-block:.2rem;padding-inline:.55rem;border-radius:var(--radius-sm);background-color:var(--bg-subtle);color:var(--ink-secondary)}.meta-tag.spruce{background-color:var(--spruce-soft);color:var(--spruce-green)}.meta-tag.saffron{background-color:var(--saffron-soft);color:#7a520b}.meta-tag.lingon{background-color:var(--lingon-soft);color:var(--lingon-red)}.card-title{font-family:var(--font-serif);font-size:1.25rem;line-height:1.25;color:var(--ink-primary)}.card-summary{font-size:.93rem;color:var(--ink-secondary)}.card-footer{display:flex;flex-wrap:wrap;align-items:safe center;justify-content:space-between;gap:.5rem;padding-block-start:.75rem;border-block-start:1px dashed var(--border-warm)}.save-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-strong);background-color:var(--bg-card);color:var(--ink-primary);padding-block:.4rem;padding-inline:.8rem;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.83rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:safe center;gap:.35rem}.save-btn:hover{background-color:var(--lingon-soft);border-color:var(--lingon-red)}.save-btn[aria-pressed=true]{background-color:var(--lingon-soft);border-color:var(--lingon-red);color:var(--lingon-red)}.calendar-controls{background-color:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:1.15rem;margin-block-end:1.4rem;display:flex;flex-wrap:wrap;align-items:safe center;justify-content:space-between;gap:1rem}.age-group-selector{display:flex;flex-wrap:wrap;gap:.45rem;align-items:safe center}.age-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid var(--border-strong);background-color:var(--bg-parchment);color:var(--ink-primary);font-family:var(--font-serif);font-size:.95rem;font-weight:600;padding-block:.5rem;padding-inline:.95rem;border-radius:var(--radius-sm);cursor:pointer}.age-btn[aria-pressed=true]{background-color:var(--spruce-green);border-color:var(--spruce-green);color:var(--bg-card)}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.hatch-card{background-color:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:1.15rem;display:flex;flex-direction:column;gap:.6rem;position:relative;box-shadow:0 2px 0 var(--border-warm)}.hatch-card.is-done{background-color:var(--spruce-soft);border-color:var(--spruce-green)}.hatch-top{display:flex;align-items:safe center;justify-content:space-between;gap:.5rem}.hatch-number{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;color:var(--lingon-red);background-color:var(--lingon-soft);inline-size:38px;block-size:38px;border-radius:50%;display:grid;place-content:center;border:1px solid rgba(158,42,43,.25)}.hatch-card.is-done .hatch-number{background-color:var(--spruce-green);color:var(--bg-card)}.hatch-title{font-family:var(--font-serif);font-size:1.08rem;color:var(--ink-primary)}.hatch-desc{font-size:.9rem;color:var(--ink-secondary);flex:1}.hatch-actions{display:flex;flex-wrap:wrap;align-items:safe center;justify-content:space-between;gap:.45rem;padding-block-start:.5rem;border-block-start:1px dashed var(--border-warm)}.empty-state{background-color:var(--bg-card);border:2px dashed var(--border-strong);border-radius:var(--radius-lg);padding:2.25rem 1.4rem;text-align:center;max-inline-size:560px;margin-inline:auto;margin-block:2rem;display:flex;flex-direction:column;align-items:center;gap:.95rem}.toast-banner{position:fixed;inset-block-end:1.25rem;inset-inline-end:1.25rem;max-inline-size:calc(100dvw - 2.5rem);background-color:var(--spruce-green);color:var(--bg-card);border:2px solid var(--saffron-gold);border-radius:var(--radius-md);padding-block:.75rem;padding-inline:1.15rem;font-weight:600;box-shadow:0 10px 25px #00000038;z-index:60}.admin-footer-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px dashed var(--border-strong);color:var(--ink-muted);font-family:var(--font-sans);font-size:.8rem;padding-block:.3rem;padding-inline:.65rem;border-radius:var(--radius-sm);cursor:pointer}.admin-footer-btn:hover{color:var(--ink-primary);border-color:var(--ink-primary);background-color:var(--bg-card)}.admin-footer-btn.is-active{background-color:var(--saffron-soft);border:1px solid var(--saffron-gold);color:var(--ink-primary);font-weight:600}dialog:modal{overscroll-behavior:contain;margin:auto;max-inline-size:620px;inline-size:calc(100% - 1.5rem);max-block-size:90dvh;background-color:var(--bg-card);color:var(--ink-primary);border:2px solid var(--border-strong);border-radius:var(--radius-lg);padding:0;box-shadow:0 20px 50px #1e181547}dialog::backdrop{overflow:hidden;overscroll-behavior:contain;background-color:#1e18158c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-inner{padding:1.5rem;display:flex;flex-direction:column;gap:1.1rem}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-block-end:1px solid var(--border-warm);padding-block-end:.85rem}.dialog-title{font-family:var(--font-serif);font-size:1.45rem;line-height:1.2}.close-icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding-block:.35rem;padding-inline:.7rem;font-weight:600;cursor:pointer;color:var(--ink-primary);flex-shrink:0}.close-icon-btn:hover{background-color:var(--border-warm)}.nissebrev-paper{background-color:#fff9eb;border:2px dashed var(--saffron-gold);border-radius:var(--radius-md);padding:1.15rem;font-family:var(--font-serif);font-style:italic;color:var(--ink-primary);line-height:1.65}.steps-list,.materials-list{padding-inline-start:1.35rem;display:flex;flex-direction:column;gap:.45rem}.auth-tabs{display:flex;flex-wrap:wrap;gap:.5rem;border-block-end:1px solid var(--border-warm);padding-block-end:.75rem}.form-stack{display:flex;flex-direction:column;gap:.95rem}.field{display:flex;flex-direction:column;gap:.25rem}.field label{font-weight:600;font-size:.92rem;color:var(--ink-primary)}.hint{display:block;color:var(--ink-secondary);font-size:.82rem;margin-block-end:.15rem}.field input,.field select,.field textarea{font-family:var(--font-sans);font-size:1rem;padding-block:.62rem;padding-inline:.85rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:#fff;color:var(--ink-primary)}.field textarea{resize:vertical;min-block-size:80px}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}@media(max-width:600px){.form-row-2{grid-template-columns:1fr}}.password-row{display:flex;gap:.45rem}.password-row input{flex:1;min-inline-size:0}.error-msg{display:none;color:#b31e1e;font-size:.85rem;font-weight:600;margin-block-start:.25rem}.alert-error-box{background-color:#fce8e6;border:1px solid #B31E1E;color:#b31e1e;padding:.65rem .85rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600}:is(input:user-invalid,.user-invalid-fallback){border-color:#b31e1e;background-color:#fce8e6}:is(input:user-invalid,.user-invalid-fallback)+.error-msg,.password-row:has(:is(input:user-invalid,.user-invalid-fallback))+.error-msg{display:block}:is(input:user-valid,.user-valid-fallback){border-color:var(--spruce-green)}
