/* ============================================================
   HYGGE — concept (Contentment · Denmark)
   Theme: warm amber/candlelight (#C0803B) · ember (#C75D3A) ·
   warm cream (#F6F0E6) · warm ink (#2A241D). Dark-mode-safe.
   ============================================================ */
.page-hygge {
    --hyg-paper:#F6F0E6; --hyg-paper-2:#EDE4D4;
    --hyg-amber:#C0803B; --hyg-amber-d:#9A6427;
    --hyg-ember:#C75D3A; --hyg-ink:#2A241D; --hyg-mute:#7A7065;
    --c-gold:var(--hyg-amber); --c-bg:var(--hyg-paper); --c-ink:var(--hyg-ink); --c-mute:var(--hyg-mute); --c-accent:var(--hyg-amber);
    background:var(--hyg-paper); color:var(--hyg-ink);
}
[data-theme="dark"] .page-hygge, [data-theme="dark"].page-hygge {
    --hyg-paper:#15120E; --hyg-paper-2:#1D1813; --hyg-ink:#ECE4D6; --hyg-mute:#ABA294;
    --hyg-amber:#DBA45E; --hyg-amber-d:#E8B978; --hyg-ember:#E08056;
    --c-bg:#15120E; --c-ink:#ECE4D6; --c-mute:#ABA294; background:#15120E; color:#ECE4D6;
}

.hyg-section { padding:var(--s-10,4rem) 0; position:relative; }
.hyg-section-head { max-width:820px; margin:0 auto var(--s-7,2.5rem); text-align:center; }
.hyg-eyebrow { font-family:var(--f-mono,monospace); font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--hyg-amber-d); margin-bottom:var(--s-3,0.75rem); }
.hyg-h2 { font-family:var(--f-serif,serif); font-size:clamp(1.7rem,3.2vw,2.6rem); line-height:1.22; color:var(--hyg-ink); margin-bottom:var(--s-4,1rem); font-weight:600; }
.hyg-h2 em { font-style:italic; color:var(--hyg-amber-d); font-weight:500; }
.hyg-sub { font-size:1.05rem; line-height:1.7; color:var(--hyg-mute); max-width:70ch; margin:0 auto; }
.hyg-sub em { color:var(--hyg-amber-d); font-style:italic; } .hyg-sub b { color:var(--hyg-ink); }
.hyg-data { font-family:var(--f-mono,monospace); font-feature-settings:"tnum"; }

.hyg-field { display:block; margin-bottom:var(--s-3,0.75rem); }
.hyg-field-label { display:block; font-size:0.92rem; color:var(--hyg-ink); font-weight:500; margin-bottom:4px; padding:0; }
.hyg-input, .hyg-textarea, .hyg-select {
    width:100%; padding:0.65rem 0.85rem; border:1px solid rgba(192,128,59,0.4); border-radius:4px;
    background:var(--hyg-paper); color:var(--hyg-ink); font-family:inherit; font-size:1rem; box-sizing:border-box;
}
.hyg-textarea { resize:vertical; line-height:1.55; font-family:var(--f-serif,serif); font-size:1.05rem; }
.hyg-input:focus, .hyg-textarea:focus, .hyg-select:focus { outline:none; border-color:var(--hyg-amber); }
[data-theme="dark"] .hyg-input, [data-theme="dark"] .hyg-textarea, [data-theme="dark"] .hyg-select { background:#0E0C09; color:#ECE4D6; }
.hyg-slider { appearance:none; width:100%; height:6px; border-radius:3px; outline:none; background:rgba(192,128,59,0.28); }
.hyg-slider::-webkit-slider-thumb { appearance:none; width:18px; height:18px; border-radius:50%; background:var(--hyg-amber); border:2px solid var(--hyg-paper); cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.2); }
.hyg-slider::-moz-range-thumb { width:18px; height:18px; border-radius:50%; background:var(--hyg-amber); border:2px solid var(--hyg-paper); cursor:pointer; }

.hyg-result { max-width:800px; margin:var(--s-5,1.25rem) auto 0; padding:var(--s-5,1.25rem); background:var(--hyg-paper-2); border-left:3px solid var(--hyg-amber); border-radius:4px; text-align:center; }
[data-theme="dark"] .hyg-result { background:#1D1813; }
.hyg-result-tag { font-family:var(--f-mono,monospace); font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--hyg-amber-d); margin-bottom:var(--s-2,0.5rem); }
.hyg-result-synth { font-family:var(--f-serif,serif); font-style:italic; font-size:1.1rem; line-height:1.65; color:var(--hyg-ink); max-width:64ch; margin:0 auto; }

.hyg-form { max-width:1000px; margin:0 auto; background:var(--hyg-paper); border:1px solid rgba(192,128,59,0.32); padding:var(--s-5,1.25rem); border-radius:4px; }
[data-theme="dark"] .hyg-form { background:#19150F; }

.hyg-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--s-3,0.75rem); }
.hyg-grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:var(--s-3,0.75rem); }
@media (max-width:640px){ .hyg-grid-2, .hyg-grid-3 { grid-template-columns:1fr; } }

.page-hygge .fade-up { opacity:0; transform:translateY(16px); animation:hygFade 0.7s ease-out forwards; }
.page-hygge .fade-up.delay-1{animation-delay:.12s;} .page-hygge .fade-up.delay-2{animation-delay:.24s;}
.page-hygge .fade-up.delay-3{animation-delay:.36s;} .page-hygge .fade-up.delay-4{animation-delay:.48s;}
@keyframes hygFade { to { opacity:1; transform:translateY(0); } }

/* hero */
.hyg-hero { position:relative; min-height:80vh; padding:var(--s-12,5rem) 0 var(--s-10,4rem); background:radial-gradient(120% 90% at 80% 30%, rgba(192,128,59,0.16) 0%, rgba(192,128,59,0) 55%), linear-gradient(180deg,var(--hyg-paper) 0%,var(--hyg-paper-2) 100%); overflow:hidden; display:flex; align-items:center; }
[data-theme="dark"] .hyg-hero { background:radial-gradient(120% 90% at 80% 30%, rgba(219,164,94,0.14) 0%, rgba(219,164,94,0) 55%), linear-gradient(180deg,#15120E 0%,#1D1813 100%); }
.hyg-hero-canvas { position:absolute; inset:0; pointer-events:none; }
.hyg-word { position:absolute; right:3%; top:50%; transform:translateY(-50%); font-family:var(--f-serif,serif); font-size:clamp(150px,26vw,360px); font-weight:700; color:var(--hyg-amber); opacity:0.08; line-height:1; user-select:none; letter-spacing:-0.04em; font-style:italic; }
[data-theme="dark"] .hyg-word { opacity:0.12; }
.hyg-flame { position:absolute; right:13%; top:36%; width:40px; height:60px; border-radius:50% 50% 48% 48% / 64% 64% 36% 36%; background:radial-gradient(ellipse at 50% 70%, #FFE3A0 0%, #F6B24A 38%, #E0772E 72%, rgba(224,119,46,0) 100%); filter:blur(2px); opacity:0.55; animation:hygFlicker 2.6s ease-in-out infinite; transform-origin:50% 100%; }
@keyframes hygFlicker { 0%,100%{ transform:scale(1) translateX(0); opacity:0.55; } 25%{ transform:scale(1.04,0.97) translateX(-1px); opacity:0.6; } 50%{ transform:scale(0.97,1.05) translateX(1px); opacity:0.48; } 75%{ transform:scale(1.02,0.98) translateX(-1px); opacity:0.58; } }
@media (prefers-reduced-motion: reduce){ .hyg-flame { animation:none; } }
.hyg-hero-content { position:relative; z-index:1; max-width:720px; }
.hyg-hero-title { font-family:var(--f-serif,serif); font-size:clamp(2.3rem,5.2vw,4rem); line-height:1.1; color:var(--hyg-ink); margin:var(--s-4,1rem) 0; font-weight:600; }
.hyg-hero-title span, .hyg-hero-title em { display:block; }
.hyg-hero-title em { font-style:italic; color:var(--hyg-amber-d); font-weight:500; padding-left:0.8em; }
.hyg-hero-sub, .hyg-hero-promise { font-size:1.08rem; line-height:1.78; color:var(--hyg-mute); margin-bottom:var(--s-4,1rem); max-width:62ch; }
.hyg-hero-sub b { color:var(--hyg-ink); font-weight:700; } .hyg-hero-sub em, .hyg-hero-promise em { color:var(--hyg-amber-d); font-style:italic; }
.hyg-pron { font-family:var(--f-mono,monospace); font-size:0.86em; color:var(--hyg-amber-d); }
.hyg-hero-cta { display:flex; flex-wrap:wrap; gap:var(--s-3,0.75rem); margin-top:var(--s-6,1.5rem); }

/* alternating section bg */
.hyg-light, .hyg-hour, .hyg-season, .hyg-voices { background:var(--hyg-paper-2); }
[data-theme="dark"] .hyg-light, [data-theme="dark"] .hyg-hour, [data-theme="dark"] .hyg-season { background:#1D1813; }

/* audit (sliders) */
.hyg-bd-grid { display:flex; flex-direction:column; gap:var(--s-3,0.75rem); margin-bottom:var(--s-3,0.75rem); }
.hyg-bd-row { display:grid; grid-template-columns:140px 1fr; gap:var(--s-3,0.75rem); align-items:center; }
@media (max-width:600px){ .hyg-bd-row { grid-template-columns:1fr; } }
.hyg-bd-label { font-family:var(--f-serif,serif); font-size:1.1rem; color:var(--hyg-ink); }
.hyg-bd-track { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:var(--s-2,0.5rem); }
.hyg-bd-end { font-family:var(--f-mono,monospace); font-size:0.7rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--hyg-mute); }

/* chips (krog + gathering) */
.hyg-krog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:var(--s-4,1rem); margin-bottom:var(--s-4,1rem); }
.hyg-krog-field { border:none; padding:0; margin:0; min-width:0; }
.hyg-krog-field legend { margin-bottom:var(--s-2,0.5rem); }
.hyg-chip-row { display:flex; flex-wrap:wrap; gap:6px; }
.hyg-chip { display:inline-flex; align-items:center; padding:0.42rem 0.8rem; background:var(--hyg-paper-2); border:1px solid rgba(192,128,59,0.3); border-radius:999px; cursor:pointer; font-size:0.88rem; color:var(--hyg-ink); transition:all .15s; }
[data-theme="dark"] .hyg-chip { background:#0E0C09; }
.hyg-chip input { position:absolute; opacity:0; pointer-events:none; }
.hyg-chip:hover { border-color:var(--hyg-amber); }
.hyg-chip:has(input:checked) { background:var(--hyg-amber); color:#fff; border-color:var(--hyg-amber); font-weight:500; }
[data-theme="dark"] .hyg-chip:has(input:checked) { color:#1A1209; }

.hyg-krog-result, .hyg-gather-result { text-align:left; }
.hyg-copied { margin-left:12px; color:var(--hyg-amber-d); font-size:0.88rem; }
.hyg-krog-result .hyg-result-synth, .hyg-gather-result .hyg-result-synth { max-width:none; margin-bottom:var(--s-3,0.75rem); }

/* hygge hour (commit cards + streak) */
.hyg-hold-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:var(--s-2,0.5rem); margin-bottom:var(--s-3,0.75rem); }
.hyg-hold-card { display:flex; align-items:center; gap:var(--s-2,0.5rem); padding:var(--s-3,0.75rem); background:var(--hyg-paper-2); border:1px solid rgba(192,128,59,0.22); border-left:3px solid var(--hyg-amber); border-radius:4px; cursor:pointer; transition:all .15s; }
[data-theme="dark"] .hyg-hold-card { background:#17120D; }
.hyg-hold-card:hover { transform:translateY(-1px); }
.hyg-hold-card input { position:absolute; opacity:0; pointer-events:none; }
.hyg-hold-mark { flex:0 0 14px; width:14px; height:14px; border:2px solid var(--hyg-mute); border-radius:50%; background:var(--hyg-paper); position:relative; }
.hyg-hold-card input:checked ~ .hyg-hold-mark { border-color:var(--hyg-amber); }
.hyg-hold-card input:checked ~ .hyg-hold-mark::after { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:6px; height:6px; background:var(--hyg-amber); border-radius:50%; }
.hyg-hold-card:has(input:checked), .hyg-hold-card.is-active { background:rgba(192,128,59,0.12); border-color:var(--hyg-amber); }
.hyg-hold-label { font-size:0.92rem; line-height:1.4; color:var(--hyg-ink); }
.hyg-streak-card { max-width:680px; margin:0 auto; text-align:center; padding:var(--s-5,1.25rem); background:var(--hyg-paper); border:1px solid rgba(192,128,59,0.3); border-radius:4px; }
[data-theme="dark"] .hyg-streak-card { background:#19150F; }
.hyg-streak { margin-top:var(--s-3,0.75rem); font-family:var(--f-mono,monospace); font-size:0.96rem; color:var(--hyg-amber-d); font-weight:500; }

/* comfort inventory */
.hyg-comfort-list { display:flex; flex-direction:column; gap:var(--s-3,0.75rem); margin-bottom:var(--s-3,0.75rem); }
.hyg-comfort-row { display:grid; grid-template-columns:1fr auto; gap:var(--s-3,0.75rem); align-items:center; }
@media (max-width:600px){ .hyg-comfort-row { grid-template-columns:1fr; } }
.hyg-savor { display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-size:0.86rem; color:var(--hyg-mute); white-space:nowrap; }
.hyg-savor input { position:absolute; opacity:0; pointer-events:none; }
.hyg-savor-mark { width:18px; height:18px; border:2px solid var(--hyg-mute); border-radius:4px; background:var(--hyg-paper); position:relative; transition:all .15s; }
.hyg-savor input:checked ~ .hyg-savor-mark { border-color:var(--hyg-amber); background:var(--hyg-amber); }
.hyg-savor input:checked ~ .hyg-savor-mark::after { content:''; position:absolute; top:1px; left:5px; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.hyg-savor input:checked ~ .hyg-savor-text { color:var(--hyg-amber-d); }

/* hustle pills (+ generic pills) */
.hyg-mini-q { font-family:var(--f-mono,monospace); font-size:0.84rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--hyg-amber-d); margin:var(--s-3,0.75rem) 0 var(--s-2,0.5rem); }
.hyg-pill-row { display:flex; flex-wrap:wrap; gap:var(--s-2,0.5rem); margin-bottom:var(--s-4,1rem); }
.hyg-pill { display:inline-flex; align-items:center; gap:8px; padding:0.5rem 0.9rem; background:var(--hyg-paper-2); border:1px solid rgba(192,128,59,0.3); border-radius:999px; cursor:pointer; font-size:0.9rem; color:var(--hyg-ink); transition:all .15s; }
[data-theme="dark"] .hyg-pill { background:#0E0C09; }
.hyg-pill input { position:absolute; opacity:0; pointer-events:none; }
.hyg-pill-mark { width:12px; height:12px; border-radius:50%; border:2px solid var(--hyg-mute); background:var(--hyg-paper); position:relative; }
.hyg-pill input:checked ~ .hyg-pill-mark { border-color:var(--hyg-amber); }
.hyg-pill input:checked ~ .hyg-pill-mark::after { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:5px; height:5px; background:var(--hyg-amber); border-radius:50%; }
.hyg-pill:has(input:checked) { background:rgba(192,128,59,0.14); border-color:var(--hyg-amber); }

/* seasonal ideas */
.hyg-season-result { text-align:left; }
.hyg-idea-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--s-3,0.75rem); }
.hyg-idea-list li { position:relative; padding-left:1.6rem; font-family:var(--f-serif,serif); font-size:1.08rem; line-height:1.55; color:var(--hyg-ink); }
.hyg-idea-list li::before { content:'•'; position:absolute; left:0.3rem; top:0; color:var(--hyg-amber); font-size:1.2rem; }

/* voices */
.hyg-voices { background:linear-gradient(180deg,#2A1D11 0%,#1A1209 100%); color:#F3E6D2; }
.hyg-voices .hyg-h2 { color:#F3E6D2; } .hyg-voices .hyg-h2 em { color:#E8B978; }
.hyg-voices .hyg-eyebrow { color:#E8B978; } .hyg-voices .hyg-sub { color:rgba(243,230,210,0.78); } .hyg-voices .hyg-sub em { color:#E8B978; }
.hyg-quote-card { background:rgba(243,230,210,0.06); border:1px solid rgba(232,185,120,0.3); padding:var(--s-7,2.5rem) var(--s-6,1.5rem); border-radius:4px; text-align:center; max-width:760px; margin:0 auto; }
.hyg-quote-mark { font-family:var(--f-serif,serif); font-size:5rem; color:#E8B978; line-height:1; margin-bottom:var(--s-2,0.5rem); opacity:0.7; }
.hyg-quote-text { font-family:var(--f-serif,serif); font-size:clamp(1.3rem,2.6vw,1.8rem); line-height:1.5; color:#F3E6D2; margin-bottom:var(--s-4,1rem); font-style:italic; }
.hyg-quote-cite { display:flex; flex-direction:column; gap:4px; margin-bottom:var(--s-4,1rem); }
.hyg-quote-author { font-family:var(--f-mono,monospace); font-size:0.92rem; color:#E8B978; letter-spacing:0.1em; text-transform:uppercase; }
.hyg-quote-source { font-size:0.84rem; color:rgba(243,230,210,0.55); font-style:italic; }
.hyg-quote-actions { display:flex; justify-content:center; gap:var(--s-3,0.75rem); flex-wrap:wrap; }
.hyg-quote-fav { background:transparent; border:1px solid rgba(232,185,120,0.4); color:#F3E6D2; padding:0.5rem 1rem; border-radius:3px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-size:0.88rem; transition:all .15s; }
.hyg-quote-fav:hover { border-color:#E8B978; color:#E8B978; }
.hyg-quote-fav.is-favorited { background:#E8B978; color:#2A1D11; border-color:#E8B978; }

/* final */
.hyg-final { background:var(--hyg-paper); text-align:center; padding:var(--s-12,5rem) 0; }
[data-theme="dark"] .hyg-final { background:#15120E; }
.hyg-final-mark { font-family:var(--f-serif,serif); font-size:clamp(3rem,8vw,5rem); font-weight:700; font-style:italic; color:var(--hyg-amber); line-height:1; margin-bottom:var(--s-4,1rem); opacity:0.85; letter-spacing:-0.04em; }
.hyg-final-quote { font-family:var(--f-serif,serif); font-size:clamp(1.4rem,2.8vw,2rem); line-height:1.45; color:var(--hyg-ink); font-style:italic; max-width:820px; margin:0 auto var(--s-3,0.75rem); font-weight:500; }
.hyg-final-quote em { color:var(--hyg-amber-d); }
.hyg-final-cite { font-family:var(--f-mono,monospace); font-size:0.92rem; color:var(--hyg-mute); letter-spacing:0.08em; margin-bottom:var(--s-5,1.25rem); }
