:root{--bg:#f5f3ec;--ink:#243a32;--green:#172b26;--gold:#ceb680;--muted:#667068;--line:#dedfd4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px 'DM Sans',sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{outline-offset:5px}button{cursor:pointer}aside{width:244px;background:var(--green);color:#dce2d6;position:fixed;inset:0 auto 0 0;padding:40px 27px;display:flex;flex-direction:column}.brand{font:30px/1.05 'Libre Caslon Display',Georgia,serif}.brand>span{float:left;font-size:54px;margin:0 12px 0 0;color:var(--gold)}.brand small{display:block;font:9px/2 sans-serif;letter-spacing:1.5px;margin-top:22px;color:#bdc7ba}nav{margin-top:58px;display:grid;gap:9px}nav a{font-size:13px;padding:12px 10px;border-radius:5px;color:#bdc9bf}nav a.active{color:#f1dfb7;background:#ffffff0c;border-left:2px solid var(--gold)}.aside-bottom{margin-top:auto;border-top:1px solid #ffffff20;padding-top:25px}.aside-bottom span{color:var(--gold);font-size:30px}.aside-bottom p{font:24px/1.4 'Libre Caslon Display',Georgia,serif}.aside-bottom small{color:#a6b6aa;font-size:11px}main{margin-left:244px;padding:0 50px;max-width:1800px}header{height:88px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px;border-bottom:1px solid var(--line);margin-bottom:32px}header a{font-size:12px;letter-spacing:0}header a span{margin-left:15px}.hero{min-height:410px;background:#1e3831;color:#f8f4e7;position:relative;overflow:hidden;border-radius:5px;padding:50px;display:flex;align-items:center}.hero:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 30%,#d6c99816,transparent 55%);pointer-events:none}.hero-copy{position:relative;z-index:2;width:65%}.eyebrow{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:#8b7750;margin-bottom:16px}.hero .eyebrow{color:var(--gold)}h1,h2,h3{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;line-height:1.06}h1{font-size:64px;margin:12px 0 23px}h1 em{font-weight:400;color:#d7c393}h2{font-size:35px;margin:0 0 16px}h3{font-size:27px;margin:14px 0}.hero p{color:#c0cdc0;max-width:430px;font-size:14px}.button{display:inline-block;background:var(--green);color:#f9f7ee;padding:12px 20px;border:1px solid var(--green);border-radius:3px;font-size:12px}.hero .button{background:#ddc99d;color:#20382e;border-color:#ddc99d;margin-top:18px}.button.light{background:transparent;color:var(--ink);border-color:#bfc6b9}.moon-art{position:absolute;right:-10px;width:43%;height:100%;top:0;opacity:.95}.intro-line{display:flex;justify-content:space-between;align-items:center;margin:36px 0 22px}.intro-line h2{margin:0;font-size:30px}.intro-line small{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{border:1px solid var(--line);background:#faf9f4;padding:27px;border-radius:5px;text-align:left;display:block;color:var(--ink)}.card:hover{border-color:#96a38f;transform:translateY(-2px)}.card .icon{font-size:29px;color:#8a805f}.card p{color:var(--muted);font-size:13px}.card .foot{display:flex;justify-content:space-between;font-size:11px;margin-top:25px;color:#6c765d}.note{padding:24px 28px;background:#e9ecdf;border-left:3px solid #a8b48f;margin-top:28px;display:flex;gap:24px;align-items:center}.note p{margin:0;font-size:13px}.note .star{font-size:30px;color:#8f805a}.page-top{max-width:740px;margin:45px 0 30px}.page-top h1{font-size:52px}.page-top p{color:var(--muted)}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}input,select,textarea{background:#fcfbf7;border:1px solid #c9cfc2;padding:12px;border-radius:4px;color:var(--ink)}input[type=search]{flex:1;min-width:220px}.tag{font-size:9px;text-transform:uppercase;letter-spacing:1.2px;display:inline-block;color:#617058;background:#e9eddf;padding:4px 7px}.nights{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.night{padding:22px}.night .number{font:34px Georgia;color:#9c8b60}.night h3{font-size:24px}.night small{color:var(--muted);font-size:11px}.progress{height:4px;background:#dfe4d6;margin-bottom:24px}.progress div{height:100%;background:#8a9a6f}.journal-layout{display:grid;grid-template-columns:2fr 1fr;gap:26px}.journal-form{background:#fcfbf7;padding:30px;border:1px solid var(--line)}label{display:block;margin:18px 0 8px;font-size:13px}textarea{width:100%;resize:vertical;min-height:100px}select{max-width:100%}.status{font-size:12px;color:#536a50;margin-left:14px}#saved-list{display:grid;gap:12px;margin-top:15px}.saved{border:1px solid var(--line);padding:14px;background:transparent;color:var(--ink);text-align:left}.sources{max-width:850px}.sources a{text-decoration:underline}.sources p{color:var(--muted)}dialog{max-width:680px;width:calc(100% - 32px);border:1px solid #b7bfae;background:var(--bg);color:var(--ink);padding:45px;max-height:85vh}dialog::backdrop{background:#0b211bc4}.close{float:right;background:transparent;border:0;font-size:30px;color:var(--ink)}dialog h2{font-size:40px}dialog p{line-height:1.8}.empty{padding:25px;color:var(--muted)}footer{border-top:1px solid var(--line);margin-top:45px;padding:23px 0;color:#778173;font-size:10px;display:flex;justify-content:space-between} @media(min-width:1500px){main{padding:0 75px}.hero{min-height:470px}h1{font-size:76px}}@media(max-width:1000px){aside{width:205px;padding:28px 18px}main{margin-left:205px;padding:0 25px}.hero{padding:30px}h1{font-size:49px}.cards{gap:12px}.card{padding:20px}.nights{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){aside{position:static;width:auto;padding:20px}.brand{font-size:24px}.brand small{margin-top:10px}.brand>span{font-size:40px}nav{display:flex;overflow:auto;margin-top:20px;gap:7px}nav a{white-space:nowrap;font-size:11px}.aside-bottom{display:none}main{margin:0;padding:0 18px}header{height:65px;margin-bottom:20px;font-size:8px;letter-spacing:1px}.hero{min-height:390px;padding:27px}.hero-copy{width:88%}.hero h1{font-size:47px}.moon-art{opacity:.25;width:70%}.cards{grid-template-columns:1fr}.nights{grid-template-columns:repeat(2,1fr)}.intro-line{align-items:start;gap:10px}.intro-line small{font-size:10px}.journal-layout{grid-template-columns:1fr}.page-top h1{font-size:43px}.note{padding:20px;gap:16px}footer span{display:none}dialog{padding:25px}}

.dream-panel{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}.dream-panel input{max-width:100%;width:100%}.dream-panel .toolbar{margin:18px 0 8px}.dream-timer{font-variant-numeric:tabular-nums;color:#8c3930}.dream-hint,.dream-recording p{font-size:12px;color:var(--muted)}.dream-recording{padding:18px 0;border-top:1px solid var(--line);margin-top:16px}.dream-recording audio{display:block;width:100%;margin:12px 0}.dream-recording .button{margin-top:8px}.button:disabled{opacity:.5;cursor:not-allowed}

.night-theme{padding:23px;background:#ece9df;border-radius:4px;margin-bottom:25px}.night-theme details{border-top:1px solid #d5d8ca;padding:12px 0}.night-theme summary{cursor:pointer;font-size:14px}.night-theme small{display:block;color:var(--muted);font-size:11px;margin-top:12px}.speech-panel{padding:20px;background:#edf0e5;border:1px solid var(--line);margin:20px 0}.dream-panel input[type=checkbox]{width:auto;margin-right:8px}.speech-panel label{line-height:1.6}.speech-panel .dream-hint{margin-bottom:0}nav{margin-top:38px}.brand small{letter-spacing:1px}

.year-layout{display:grid;grid-template-columns:minmax(290px,1fr) minmax(320px,1.2fr);gap:30px;align-items:start}.year-wheel{position:relative;aspect-ratio:1;max-width:510px;margin:15px auto 25px;border:1px solid #a0aa8e;border-radius:50%;background:radial-gradient(circle,#f6f1df 0 29%,#dce1cb 30% 31%,#f0f0e4 32% 64%,#d5dac5 65% 66%,transparent 67%)}.wheel-center{position:absolute;inset:35% 25%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.wheel-center span{font-size:38px;color:#967e48}.wheel-center strong{font:21px Georgia}.wheel-center small{font-size:10px;color:var(--muted)}.wheel-fest{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:92px;min-height:64px;border:1px solid #c9d0ba;border-radius:8px;background:#faf9f0;color:var(--ink);font-size:12px;padding:6px}.wheel-fest span{display:block;font-size:22px;color:#978052}.wheel-fest[aria-pressed=true]{background:var(--green);color:#f3e5c7;border-color:var(--green)}.festival-card{padding:30px}.festival-sub{font-family:Georgia,serif;font-style:italic}.festival-card h3{font-size:25px;margin-top:25px}.year-sources{margin-top:30px;border-top:1px solid var(--line);padding-top:18px}.year-sources summary{cursor:pointer}.year-sources a{text-decoration:underline}.year-sources p{font-size:13px;color:var(--muted)}aside{overflow-y:auto}.aside-bottom{padding-top:15px;margin-top:30px}@media(max-width:1000px){.year-layout{grid-template-columns:1fr}.year-wheel{width:100%;max-width:430px}}@media(max-width:400px){.wheel-fest{width:76px;font-size:10px}.wheel-center strong{font-size:15px}}

@media(max-width:720px){body{padding-bottom:env(safe-area-inset-bottom)}main{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}input,textarea,select{font-size:16px}button,.button,nav a{min-height:44px}aside{padding-top:max(20px,env(safe-area-inset-top))}.toolbar{align-items:stretch}.toolbar .button{flex:1 1 auto}.dream-panel input[type=file]{font-size:14px}.night-theme{padding:17px}.journal-form{padding:20px}}
