:root{--bg:#251019;--cream:#f0dcc3;--muted:#b39992;--gold:#dcb58c;--line:rgba(236,202,179,.17);--blue:#879fb8;--pink:#c38499;--amber:#deb47f;color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:var(--cream);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 68% 42%,#46202a 0%,#2c141d 36%,#251019 72%)}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:6px}[hidden]{display:none!important}button{border:0}::selection{background:#ad765c;color:#fff1de}.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E")}
.header{max-width:1440px;margin:auto;padding:30px 5.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;font-family:Georgia,'Times New Roman',serif;font-size:27px;letter-spacing:-1.4px}.brand svg{width:29px;height:35px;fill:none;stroke:var(--gold);stroke-width:1.2}.brand-star{font-size:17px;vertical-align:top;margin-left:7px;line-height:1.1;display:inline-block}.header-right{display:flex;align-items:center;gap:39px}.status{font-size:9px;letter-spacing:1.7px;display:flex;gap:9px;align-items:center;color:#c9b0a1}.status i{width:5px;height:5px;background:#b79a6f;border-radius:100%;box-shadow:0 0 9px #c2a87a}.text-button{background:none;padding:0;color:var(--muted);font-size:11px}.text-button:hover{color:var(--cream)}.text-button span{padding-left:7px}main{max-width:1290px;margin:auto;padding:0 5.2%}.topline{display:flex;justify-content:space-between;margin:28px 0 36px;font-size:9px;letter-spacing:1.6px;color:#a38984}.night-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;min-height:730px}.eyebrow{font-size:9px;letter-spacing:2.2px;color:var(--gold);display:flex;align-items:center;gap:11px}.tiny-star{font-size:18px}.intro h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(60px,6.7vw,94px);letter-spacing:-5px;line-height:1.02;margin:22px 0 21px}.intro h1 em{font-weight:400;color:var(--gold)}.intro-copy{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.mixer{max-width:385px;margin-top:41px}.menu-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;border-bottom:1px solid var(--line);padding-bottom:13px;color:#ae9286}.menu-heading span:last-child{color:#80666a}.ingredient{margin-top:23px}.ingredient-heading{display:flex;align-items:baseline;justify-content:space-between;font-size:13px}.ingredient-heading output{font-family:Georgia,serif;font-size:18px;color:var(--color)}.blue{--color:var(--blue)}.pink{--color:var(--pink)}.amber{--color:var(--amber)}input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:2px;outline:none;background:linear-gradient(to right,var(--color,#cfaa8a) 0%,var(--color,#cfaa8a) var(--fill,45%),#62414a var(--fill,45%),#62414a 100%);cursor:pointer;display:block;margin:18px 0 12px;border-radius:2px}input[type=range]::-webkit-slider-thumb{appearance:none;width:11px;height:11px;border-radius:50%;background:var(--color,#cfaa8a);border:3px solid #28121a;box-shadow:0 0 0 1px var(--color,#cfaa8a)}input[type=range]::-moz-range-thumb{width:6px;height:6px;border-radius:50%;background:var(--color,#cfaa8a);border:3px solid #28121a;box-shadow:0 0 0 1px var(--color,#cfaa8a)}.range-caption{display:flex;justify-content:space-between;font-size:9px;color:#957c78}.pour-button{display:flex;justify-content:space-between;width:100%;padding:17px 21px;background:var(--cream);color:#321b23;margin-top:29px;font-size:12px;transition:background .2s,transform .2s}.pour-button:hover{background:#f9e9d6;transform:translateY(-2px)}.pour-button:active{transform:translateY(0)}.button-note{font-size:9px;color:#9d807a;text-align:center;margin:12px 0 0}.glass-scene{position:relative;display:flex;flex-direction:column;align-items:center;isolation:isolate;border-left:1px solid var(--line);padding:4px 0 12px 22px;min-height:720px}.scene-meta{display:flex;justify-content:space-between;width:100%;font-size:8px;color:#947973;letter-spacing:1.3px;padding-left:16px}.glass-scene canvas{width:100%;max-width:480px;height:auto;aspect-ratio:9/11;margin:54px 0 0;z-index:2;touch-action:pan-y}.orbit{position:absolute;border:1px solid rgba(215,157,125,.12);border-radius:50%;z-index:0;pointer-events:none}.orbit-one{width:400px;height:400px;top:123px;left:calc(50% - 187px)}.orbit-two{width:455px;height:455px;top:96px;left:calc(50% - 215px);border-color:rgba(215,157,125,.045)}.scene-star{position:absolute;color:#be927d;z-index:1}.star-one{left:16%;top:132px;font-size:25px}.star-two{right:6%;top:353px;font-size:43px;font-weight:200}.scene-script{position:absolute;right:9%;top:77px;font:italic 19px/1.4 Georgia,serif;color:#ba9785;transform:rotate(-9deg);z-index:1}.glass-caption{display:flex;align-items:center;gap:13px;font-size:9px;letter-spacing:.5px;color:#b59582;margin-top:-18px}.caption-rule{display:block;width:27px;height:1px;background:#76554c}.tilt-button{margin-top:14px}.welcome-card{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);z-index:5;background:rgba(40,19,28,.94);box-shadow:0 12px 70px #160b11a1;border:1px solid #76514d;padding:29px 32px 24px;width:300px;text-align:center;backdrop-filter:blur(12px);transition:opacity .4s,transform .4s}.welcome-label{font-size:8px;letter-spacing:2px;color:var(--gold)}.welcome-card h2{font:25px Georgia,serif;font-weight:400;margin:19px 0 11px}.welcome-card p{font-size:10px;color:var(--muted);margin:0 0 22px}.welcome-card>button:first-of-type{background:var(--cream);color:#351c24;padding:13px 15px;font-size:11px;width:100%;display:flex;justify-content:space-between}.silent-enter{background:none;font-size:9px;color:var(--muted);margin-top:16px}.welcome-card.leaving{opacity:0;transform:translate(-50%,-46%);pointer-events:none}.bottom-strip{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;font-size:8px;letter-spacing:1.7px;color:#ad9284;margin-top:22px}.small-moon{font-size:19px;margin-right:10px;vertical-align:middle}.sound-controls{display:flex;align-items:center;gap:17px}.sound-button{display:flex;align-items:center;gap:9px;background:none;font-size:10px;color:var(--muted);padding:5px 0}.sound-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.sound-controls input{width:60px;margin:0;--fill:35%}footer{max-width:1440px;padding:23px 5.2% 27px;margin:auto;display:flex;justify-content:space-between;font:italic 12px Georgia,serif;color:#826b68;border-top:1px solid var(--line)}footer div{display:flex;gap:18px;align-items:center}footer .text-button{font-size:9px;color:#9e827b}.footer-dot{font:10px Arial}.preview-banner{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:25;display:flex;align-items:center;gap:25px;max-width:95%;white-space:nowrap;background:#f0dcc3;color:#321b23;border:1px solid #e4bb94;padding:12px 17px;box-shadow:0 5px 25px #180b12;font-size:8px;letter-spacing:1px}.preview-banner button{font-size:10px;letter-spacing:0;background:none;color:#321b23}.day-view{min-height:715px;text-align:center;padding-top:35px;position:relative}.day-view .eyebrow{justify-content:center}.day-view h1{font:400 clamp(42px,5.7vw,78px)/1.09 Georgia,serif;letter-spacing:-3px;margin:27px 0 25px}.day-view h1 em{color:var(--gold)}.day-view>p{font-size:13px;line-height:1.9;color:var(--muted)}.countdown{font:400 42px Georgia,serif;letter-spacing:5px;margin:35px 0 12px;font-variant-numeric:tabular-nums}.countdown-label{font-size:8px;letter-spacing:2px;color:#a5897f}.day-preview{display:block;margin:32px auto 14px;background:var(--cream);color:#321b23;padding:15px 24px;font-size:12px}.day-preview span{margin-left:23px}.preview-note{font-size:9px;color:#987a74}.day-quote{margin-top:47px}.day-quote>span{font-size:8px;letter-spacing:1.7px;color:#826963}.day-quote p{font:italic 22px/1.5 Georgia,serif;color:#ba9983;margin-top:17px}dialog{border:1px solid #76514d;background:#2c141d;color:var(--cream);max-height:92dvh;max-width:calc(100% - 28px);padding:35px;box-shadow:0 25px 120px #0009}dialog::backdrop{background:#160a13c9;backdrop-filter:blur(7px)}.dialog-close{position:absolute;top:11px;right:14px;background:none;font-size:25px;color:#ae8e80;padding:2px 7px}.receipt-dialog{width:495px}.receipt-heading{text-align:center;margin:0 0 26px}.receipt-heading>span{font-size:8px;letter-spacing:1.7px;color:var(--gold)}.receipt-heading h2{font:400 25px Georgia,serif;margin:14px 0}.receipt-heading h2 em{color:var(--gold)}.receipt-paper{background:#efe1cb;color:#3b2930;padding:28px 30px 25px;clip-path:polygon(0 0,100% 0,100% 98.7%,97% 100%,94% 98.7%,91% 100%,88% 98.7%,85% 100%,82% 98.7%,79% 100%,76% 98.7%,73% 100%,70% 98.7%,67% 100%,64% 98.7%,61% 100%,58% 98.7%,55% 100%,52% 98.7%,49% 100%,46% 98.7%,43% 100%,40% 98.7%,37% 100%,34% 98.7%,31% 100%,28% 98.7%,25% 100%,22% 98.7%,19% 100%,16% 98.7%,13% 100%,10% 98.7%,7% 100%,4% 98.7%,0 100%);animation:print .7s ease-out}.receipt-brand{font:28px Georgia,serif;text-align:center;letter-spacing:-1px}.receipt-sub{font:8px monospace;letter-spacing:1.4px;text-align:center;margin-top:10px}.dashed-rule{border-top:1px dashed #a28e7e;margin:23px 0}.receipt-label{font:8px monospace;letter-spacing:1px;color:#8c746a}.receipt-paper h3{font:400 31px/1.1 Georgia,serif;margin:13px 0 25px;letter-spacing:-1px}.receipt-line,.receipt-reality{display:flex;justify-content:space-between;font:11px monospace;margin:14px 0}.receipt-reality{color:#947d71}.receipt-quote{font:italic 22px/1.35 Georgia,serif;margin:0 0 24px;text-align:center}.receipt-time{font:9px monospace;text-align:center}.receipt-end{font:9px/1.9 monospace;text-align:center;margin-top:20px;color:#887267}.receipt-end strong{font-weight:400;letter-spacing:1.4px}.receipt-actions{display:flex;gap:10px;margin-top:24px}.receipt-actions button{padding:15px 10px;font-size:11px;flex:1;background:var(--cream);color:#321b23}.receipt-actions button:last-child{background:transparent;border:1px solid #92715f;color:var(--cream)}.receipt-help{text-align:center;font-size:9px;color:#947871;margin-bottom:0}.about-dialog{width:465px;padding:45px}.about-dialog h2{font:400 43px/1.1 Georgia,serif;letter-spacing:-1.8px;margin:25px 0}.about-dialog h2 em{color:var(--gold)}.about-dialog p{font-size:13px;color:var(--muted);line-height:1.85}.about-hours{border-top:1px solid var(--line);padding-top:20px;margin-top:25px;font-size:11px;line-height:1.8;color:var(--gold)}.toast{position:fixed;bottom:70px;left:50%;transform:translate(-50%,20px);background:#efddc6;color:#321b23;font-size:12px;padding:14px 22px;opacity:0;transition:.25s;pointer-events:none;z-index:100;max-width:90vw;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes print{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.night-layout{gap:100px}.glass-scene canvas{max-width:510px}.night-layout{min-height:770px}}
@media(max-width:1050px){.night-layout{gap:30px}.intro h1{font-size:76px}.orbit-one{width:320px;height:320px;left:calc(50% - 145px)}.orbit-two{width:365px;height:365px;left:calc(50% - 167px)}.glass-scene canvas{margin-top:95px}.scene-script{right:7%;font-size:16px}.star-two{right:0}.header-right{gap:20px}.welcome-card{width:270px;padding:25px}.glass-caption{font-size:8px}}
@media(max-width:740px){.header{padding:23px 6%}.brand{font-size:25px}.brand svg{width:25px}.header-right .text-button{display:none}.status{font-size:7px;letter-spacing:1.1px}main{padding:0 6%}.topline{margin:22px 0 33px;font-size:7px;letter-spacing:1px}.night-layout{display:flex;flex-direction:column;gap:0;min-height:0}.intro{display:contents}.eyebrow{font-size:8px;gap:8px}.tiny-star{font-size:16px}.intro h1{font-size:78px;letter-spacing:-4.5px;margin-top:18px;margin-bottom:16px}.intro-copy{font-size:12px}.glass-scene{order:2;border:0;padding:0;min-height:0;margin:35px 0 24px;width:100%;height:465px}.scene-meta{padding:0;font-size:7px}.glass-scene canvas{width:350px;max-width:100%;height:428px;margin:5px 0 0}.orbit-one{width:280px;height:280px;left:calc(50% - 140px);top:63px}.orbit-two{width:325px;height:325px;left:calc(50% - 162px);top:40px}.scene-script{top:38px;right:1%;font-size:15px}.star-one{top:72px;left:8%}.star-two{top:245px;right:4%;font-size:31px}.glass-caption{margin-top:-19px}.welcome-card{top:48%;width:265px}.mixer{order:3;max-width:none;width:100%;margin-top:13px}.ingredient{margin-top:26px}.ingredient-heading{font-size:14px}.range-caption{font-size:10px}input[type=range]{height:3px;margin-top:23px;margin-bottom:16px}input[type=range]::-webkit-slider-thumb{width:15px;height:15px}.pour-button{padding:19px 21px;font-size:13px}.menu-heading{font-size:9px}.bottom-strip{margin-top:33px;padding:20px 0}.bottom-strip>span{font-size:7px;letter-spacing:.8px;max-width:170px;line-height:1.8}.small-moon{margin-right:5px}.sound-controls{gap:11px}.sound-controls input{width:42px}.sound-button{font-size:9px;gap:7px}footer{padding:20px 6% 65px;flex-direction:column;gap:16px;font-size:12px}footer div{justify-content:space-between;gap:0}.footer-dot{display:none}.preview-banner{padding:11px 13px;gap:18px;font-size:7px}.preview-banner button{font-size:9px}.day-view{padding-top:20px;min-height:665px}.day-view h1{font-size:47px;letter-spacing:-2.7px;margin-top:35px}.day-view>p{font-size:12px}.countdown{font-size:35px;letter-spacing:3px}.day-quote p{font-size:22px}.receipt-dialog{padding:33px 22px 23px}.receipt-heading h2{font-size:23px}.receipt-paper{padding:26px 24px}.receipt-paper h3{font-size:29px}.receipt-quote{font-size:20px}.receipt-line{font-size:10px}.about-dialog{padding:38px 27px}.about-dialog h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep keyboard focus visible without changing unfocused sliders. */
input[type=range]:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
/* Constrain only the mobile scene decoration; keep controls unclipped. */
@media(max-width:740px){.glass-scene .orbit{max-width:100%;height:auto;aspect-ratio:1;left:50%;transform:translateX(-50%)}}
/* Module C follows the existing secondary headings and body/control scale. */
.wall{margin:3rem auto;max-width:760px;border-top:1px solid var(--line);padding:2rem 0}
.wall h2{font:400 25px Georgia,serif;margin:19px 0 22px}
.wall h2 em{color:var(--gold)}
.wall p,.wall-message,.wall textarea,.wall-editor-label{font-size:13px;line-height:1.9}
.wall p{color:var(--muted)}
.wall label[for=wall-text]{font-size:13px}
.wall textarea{display:block;width:100%;margin:12px 0 8px;background:var(--bg);color:var(--cream);border:1px solid var(--line);padding:12px;font-family:inherit;resize:vertical}
.wall .wall-small,#wall-count{font-size:9px;line-height:1.7;color:var(--muted)}
.wall .pour-button{max-width:385px}
.wall-action{background:transparent;color:var(--cream);border:1px solid var(--line);padding:10px 14px;font-size:11px}
.wall button:disabled{opacity:.45;cursor:default}
.wall ul{list-style:none;padding:0}
.wall li{margin:16px 0;overflow-wrap:anywhere}
.wall-message{display:block;width:100%;text-align:left;white-space:pre-wrap;position:relative;background:transparent;color:var(--cream);border:1px solid var(--line);padding:12px 16px}
.wall textarea:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.wall details{margin:14px 0;font-size:11px;color:var(--muted)}
.wall .text-button{margin-top:8px}
.wall-motion{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:8px}
#wall-feedback:empty{display:none}
#wall-list{padding:8px;margin:8px -8px;contain:layout}
.wall .clink{box-shadow:0 0 20px #d8b29166;border-color:var(--gold)}
.wall .clink:after{content:'';position:absolute;inset:0;border:1px solid var(--gold);animation:wall-ripple 1s ease-out forwards;pointer-events:none}
#wall-list.drifting li:nth-child(-n+3){animation:wall-drift 8s ease-in-out infinite alternate}
#wall-list.drifting li:nth-child(2){animation-delay:-3s}
#wall-list.drifting li:nth-child(3){animation-delay:-6s}
#wall-list.drifting:hover li,#wall-list.drifting:focus-within li{animation-play-state:paused}
@keyframes wall-drift{from{transform:translate(-4px,-5px)}to{transform:translate(4px,5px)}}
@keyframes wall-ripple{to{opacity:0;transform:scale(1.03)}}
.wall-clink-status{background:var(--bg);color:var(--gold);border:1px solid var(--line);box-shadow:0 5px 25px #180b1266;padding:11px 18px;font-size:11px;bottom:calc(70px + env(safe-area-inset-bottom,0px))}
@media(prefers-reduced-motion:reduce){#wall-list.drifting li,.wall .clink:after{animation:none!important}}

.wall-security{width:400px;padding:24px}.wall-security h2{font:400 25px Georgia,serif}.wall-security p{font-size:13px;color:var(--muted);line-height:1.9}.wall-security .wall-action{margin-top:16px}

.wall .wall-personal{margin-top:20px;border-top:1px solid var(--line)}
.wall-personal>summary{padding:14px 0;color:var(--cream);font-size:12px;cursor:pointer;min-height:44px}
.wall-personal-content{padding:0 0 10px}
.wall-personal .text-button{min-height:44px;margin:0;font-size:11px}
.wall-session-help summary{font-size:10px;cursor:pointer;min-height:32px;padding:8px 0}
#wall-empty{margin:18px 0}

#wall-own{list-style:none;padding:0;margin:12px 0}
#wall-own li{padding:14px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.wall-own-body{font-size:13px;line-height:1.9;overflow-wrap:anywhere;white-space:pre-wrap;margin:0}
.wall-personal .wall-action,.wall-delete-actions .wall-action{min-height:44px;padding:10px 14px}
.wall-delete-dialog{width:380px;padding:24px}
.wall-delete-dialog h2{font:400 25px Georgia,'Times New Roman',serif;margin:0 0 16px}
.wall-delete-dialog p{font-size:13px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}
.wall-delete-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
#wall-delete-error:empty{display:none}

/* Quiet sharing tools sit outside the exported paper. */
.receipt-attribution{font:11px/1.6 Arial,Helvetica,sans-serif;color:#806b60;text-align:center;margin:-8px 0 24px;overflow-wrap:anywhere}.receipt-attribution span{display:block;font-style:italic}.receipt-actions{flex-wrap:wrap;gap:10px}.receipt-actions button{min-width:0;flex:1 1 120px}.share-platforms{display:flex;justify-content:center;align-items:center;gap:16px;margin:17px 0 10px;font:11px/1.5 Arial,Helvetica,sans-serif;color:var(--muted)}.share-platforms a{color:var(--cream);text-decoration:underline;text-underline-offset:4px}.share-help{font:11px/1.7 Arial,Helvetica,sans-serif;color:var(--muted);text-align:left;margin:14px 0}.share-help summary{cursor:pointer}.receipt-source{display:block;text-align:center;margin-top:15px}.manual-copy{margin-top:16px;text-align:left;font-size:11px;color:var(--muted)}.manual-copy label{display:block;margin-bottom:7px}.manual-copy input{width:100%;font:inherit;background:var(--bg);color:var(--cream);border:1px solid var(--line);padding:12px;min-width:0}.invite-dialog{max-width:470px}.sources-page main{max-width:850px;padding:45px 6%;margin:auto}.sources-page h1{font:400 clamp(36px,7vw,64px)/1.1 Georgia,serif;letter-spacing:-2px;margin:32px 0}.sources-page h1 em{color:var(--gold)}.sources-intro{font:13px/1.9 Arial,Helvetica,sans-serif;color:var(--muted)}.sources-page article{border-top:1px solid var(--line);padding:25px 0;scroll-margin-top:25px}.sources-page blockquote{font:italic 24px/1.5 Georgia,serif;margin:0 0 16px;overflow-wrap:anywhere}.sources-page h2{font:400 13px/1.6 Arial,Helvetica,sans-serif}.sources-page article p,.sources-page article details{font:12px/1.8 Arial,Helvetica,sans-serif;color:var(--muted);overflow-wrap:anywhere}.sources-page a{color:var(--gold)}.sources-page summary{cursor:pointer}.sources-page code{word-break:break-all}@media(max-width:390px){.receipt-actions button{font-size:11px;flex-basis:100px}.share-platforms{gap:12px}.receipt-dialog{padding-left:16px;padding-right:16px}}
