:root{--navy:#080D1B;--char:#121827;--twi:#24334F;--gold:#D8BD86;--ivory:#F5F0E8;--lav:#A8A0C8;--amber:#F1B96C}
body{margin:0;background:var(--navy);color:var(--ivory);font-family:"Inter",system-ui,sans-serif}
.mc{display:flex;min-height:100vh}
.side{width:96px;background:var(--char);border-right:1px solid #ffffff12;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 0}
.mark{font-family:"Cormorant Garamond",Georgia,serif;color:var(--gold);font-size:22px;letter-spacing:2px;margin-bottom:14px}
.side button{background:none;border:0;color:#f5f0e8a0;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:12px;cursor:pointer;width:80px}
.side button span{font-size:20px}
.side button.on{color:var(--gold);background:#d8bd8614}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:16px;padding:14px 24px;flex-wrap:wrap;border-bottom:1px solid #ffffff10}
.wordmark{font-family:"Cormorant Garamond",Georgia,serif;font-size:26px;letter-spacing:1px;margin-right:auto}
.wordmark em{color:var(--gold)}
.clock{display:flex;flex-direction:column;text-align:right}.clock strong{font-variant-numeric:tabular-nums;font-size:18px}.clock span{font-size:12px;color:#f5f0e8a0}
.atmo{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--lav)}.dot{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 8px var(--amber)}
.chip,.btn-g{background:#d8bd861a;border:1px solid #d8bd8655;color:var(--gold);border-radius:999px;padding:8px 14px;cursor:pointer;font:inherit;font-size:13px}
.btn-g:hover,.chip:hover{background:#d8bd8630}
button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.glass{background:#121827b8;backdrop-filter:blur(14px);border:1px solid #ffffff18;border-radius:18px;box-shadow:0 20px 50px #0008}
.stage{position:relative;padding:20px;flex:1}
.room{position:relative;height:min(72vh,640px);min-height:420px;border-radius:22px;overflow:hidden;background:linear-gradient(#1a1410,#0e0b09);transition:filter .8s}
.room:not(.lit){filter:brightness(.72)}
.window-wall{position:absolute;inset:0 0 34% 0}
.sky{position:absolute;inset:0;overflow:hidden;transition:background 1.2s}
.skyline{position:absolute;bottom:0;width:100%;height:85%}
.mullions{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 5px),#1d1712 calc(25% - 5px) 25%);box-shadow:inset 0 0 0 10px #1d1712;pointer-events:none}
.reflect{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#ffffff0d 38%,transparent 46%);pointer-events:none}
.stars{position:absolute;inset:0;background-image:radial-gradient(1px 1px at 12% 20%,#fff,transparent),radial-gradient(1px 1px at 40% 12%,#fff,transparent),radial-gradient(1px 1px at 70% 25%,#fff,transparent),radial-gradient(1px 1px at 88% 8%,#fff,transparent);opacity:.7}
.fog{position:absolute;inset:0;background:linear-gradient(transparent,#a8b0c8 90%);transition:opacity 1.2s;pointer-events:none}
.rain{position:absolute;inset:0;background-image:linear-gradient(170deg,transparent 0 92%,#cfd8ee66 92% 100%);background-size:6px 60px;animation:rain .45s linear infinite;pointer-events:none}
@keyframes rain{to{background-position:-10px 60px}}
.snow{position:absolute;inset:0;background-image:radial-gradient(2px 2px at 20px 30px,#fff,transparent),radial-gradient(2px 2px at 70px 90px,#fffc,transparent),radial-gradient(1.5px 1.5px at 120px 50px,#fff,transparent);background-size:150px 120px;animation:snow 6s linear infinite;pointer-events:none}
@keyframes snow{to{background-position:30px 120px}}
.flash{position:absolute;inset:0;background:#dfe6ff;opacity:0;animation:flash 9s infinite;pointer-events:none}
@keyframes flash{0%,93%,100%{opacity:0}94%{opacity:.35}95%{opacity:0}96%{opacity:.2}}
.traffic{animation:drive 7s linear infinite}@keyframes drive{to{transform:translateX(1000px)}}
.floor{position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(#3a2a1e,#1c140e);border-top:2px solid #5a4430}
.rug{position:absolute;left:18%;right:18%;bottom:4%;height:16%;border-radius:50%;background:radial-gradient(#4b4560,#2a2740);opacity:.9}
.curtain{position:absolute;top:0;width:6%;height:70%;background:linear-gradient(90deg,#2a2236,#3b3150,#2a2236)}
.curtain.left{left:0}.curtain.right{right:0}
.sofa{position:absolute;left:26%;width:48%;bottom:9%;height:22%}
.sofa .back{position:absolute;inset:0 0 35% 0;background:linear-gradient(#3a4566,#26304a);border-radius:22px 22px 6px 6px}
.sofa .seat{position:absolute;left:-3%;right:-3%;bottom:0;height:42%;background:linear-gradient(#2e3856,#1c2338);border-radius:14px}
.cushion{position:absolute;top:14%;width:16%;height:38%;border-radius:12px;z-index:1}
.c1{left:8%;background:var(--gold)}.c2{right:8%;background:var(--lav)}
.throw{position:absolute;right:18%;top:30%;width:22%;height:55%;background:repeating-linear-gradient(90deg,#d9cbb0 0 6px,#c9b892 6px 12px);border-radius:8px;z-index:1;transform:skewX(-6deg)}
.coffee-table{position:absolute;left:40%;width:20%;bottom:3%;height:5%;background:linear-gradient(#5b4532,#3a2b1f);border-radius:40px;z-index:2}
.books{position:absolute;left:14%;top:-10px;width:30px;height:10px;background:linear-gradient(#8a3b3b 0 33%,#d8bd86 33% 66%,#2f4a6a 66%)}
.candle{position:absolute;left:55%;top:-16px;width:8px;height:16px;background:var(--ivory);border-radius:2px;box-shadow:0 -8px 12px var(--amber)}
.mug{position:absolute;right:16%;top:-12px;width:12px;height:12px;background:#e8e0d4;border-radius:0 0 4px 4px}
.side-table{position:absolute;left:12%;bottom:9%;width:7%;height:12%;background:#2a1f16;border-radius:4px}
.lamp{position:absolute;left:50%;bottom:100%;transform:translateX(-50%)}
.lamp .shade{width:44px;height:30px;background:linear-gradient(#f5e1b8,#d8bd86);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}
.lamp .base{width:6px;height:28px;margin:auto;background:#b89c68}
.floor-lamp{position:absolute;right:11%;bottom:9%;height:48%;width:40px}
.floor-lamp .shade{width:40px;height:28px;background:linear-gradient(#f5e1b8,#d8bd86);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}
.floor-lamp .pole{width:3px;height:100%;margin:auto;background:#b89c68}
.room:not(.lit) .shade{background:#4a4234}
.lamp-light{position:absolute;inset:0;background:radial-gradient(circle at 15% 70%,#f1b96c40,transparent 30%),radial-gradient(circle at 88% 50%,#f1b96c38,transparent 30%);pointer-events:none;transition:opacity .8s}
.room:not(.lit) .lamp-light{opacity:0}
.plant{position:absolute;left:79%;bottom:7%;width:6%;height:20%}
.leaves{height:70%;background:radial-gradient(ellipse at 30% 60%,#3f6b4a 30%,transparent 31%),radial-gradient(ellipse at 70% 40%,#4c7d57 30%,transparent 31%),radial-gradient(ellipse at 50% 20%,#36603f 28%,transparent 29%)}
.pot{height:30%;background:#c9bba3;border-radius:0 0 8px 8px}
.hotspot{position:absolute;width:30px;height:30px;border-radius:50%;border:1px solid #d8bd86aa;background:#d8bd8633;cursor:pointer;z-index:5;animation:pulse 3s infinite}
.hotspot span{position:absolute;left:36px;top:4px;white-space:nowrap;font-size:12px;color:var(--ivory);background:#080d1bcc;padding:3px 8px;border-radius:8px;opacity:0;transition:opacity .3s}
.hotspot:hover span,.hotspot:focus-visible span{opacity:1}
.hs-window{left:50%;top:30%}.hs-lamp{left:13%;bottom:30%}
@keyframes pulse{50%{box-shadow:0 0 0 8px #d8bd8610}}
.panel{position:absolute;top:36px;right:36px;padding:16px 18px;width:220px;max-width:calc(100% - 72px)}
.p-time{font-family:"Cormorant Garamond",Georgia,serif;font-size:30px;color:var(--gold);font-variant-numeric:tabular-nums}
.p-row{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:5px 0;border-bottom:1px solid #ffffff10}.p-row span{color:#f5f0e899}
.p-note{font-size:12px;color:var(--lav);margin:8px 0}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.city{padding:20px;display:grid;gap:18px;grid-template-columns:1fr 340px}
.city-view{position:relative;height:min(70vh,600px);min-height:340px;border-radius:22px;overflow:hidden}
.tag{position:absolute;left:20px;bottom:20px;padding:6px 12px;font-size:12px}
.controls{padding:20px}.controls h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;margin:0 0 12px;color:var(--gold)}
.presets{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.preset{display:flex;align-items:center;gap:8px;background:#ffffff08;border:1px solid #ffffff15;color:var(--ivory);border-radius:12px;padding:8px;font:inherit;font-size:12px;cursor:pointer;text-align:left}
.preset i{width:22px;height:22px;border-radius:6px;flex:none}.preset.on{border-color:var(--gold);background:#d8bd861c}
.slider{display:block;font-size:13px;margin:10px 0}.slider output{float:right;color:var(--gold)}
.slider input{width:100%;accent-color:var(--gold)}
.toggles{display:grid;gap:8px;font-size:13px;margin:12px 0}.toggles input{accent-color:var(--gold)}
.page{padding:20px;display:grid;gap:16px}.page h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;color:var(--gold);margin:0}.sub{color:#f5f0e8a0;margin:4px 0 0}
.mixer{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px}.grow{flex:1;min-width:140px}.tog{font-size:13px}
.sound-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.sound{padding:16px;transition:border-color .4s}.sound.on{border-color:#d8bd8688}
.sound-top{display:flex;gap:10px;align-items:flex-start}.sound h3{margin:0;font-size:15px}.sound p{margin:4px 0 0;font-size:12px;color:#f5f0e8a0}
.s-icon{font-size:22px;color:var(--gold)}.star{background:none;border:0;color:var(--gold);font-size:20px;cursor:pointer}
.sound-row{display:flex;align-items:center;gap:10px;margin-top:12px}.sound-row input{accent-color:var(--gold)}
.play{width:40px;height:40px;border-radius:50%;border:1px solid #d8bd8677;background:#d8bd8622;color:var(--gold);cursor:pointer}
.state{font-size:12px;color:var(--lav);width:58px}
.eq{display:flex;gap:2px;align-items:flex-end;height:14px}.eq i{width:3px;height:4px;background:var(--gold)}.eq.on i{animation:eq 1s ease-in-out infinite}.eq.on i:nth-child(2){animation-delay:.3s}.eq.on i:nth-child(3){animation-delay:.6s}
@keyframes eq{50%{height:14px}}
.cafe,.journal{padding:20px;display:flex;flex-direction:column;gap:18px;color:#F5F0E8}
.cafe h1,.journal h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:2.4rem;margin:0}
.cafe h2,.journal h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:1.5rem;margin:0 0 10px}
.cafe-hero{position:relative;min-height:240px;border-radius:22px;overflow:hidden;background:linear-gradient(180deg,#24334F,#121827 60%,#3a2618);border:1px solid rgba(216,189,134,.2)}
.cafe-win{position:absolute;inset:18px 18px 40%;border-radius:12px;background:linear-gradient(180deg,#0d1530,#24334F),repeating-linear-gradient(90deg,transparent 0 40px,rgba(241,185,108,.25) 40px 43px);opacity:.7}
.counter{position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,#6b4428,#3a2416)}
.pendants{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-around;z-index:2}
.pendants i{width:2px;height:50px;background:#D8BD86;position:relative}
.pendants i::after{content:"";position:absolute;top:48px;left:-16px;width:34px;height:18px;border-radius:18px 18px 4px 4px;background:#D8BD86;box-shadow:0 20px 60px 20px rgba(241,185,108,.45)}
.cafe-title{position:relative;z-index:3;padding:110px 24px 20px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.cafe-title p{margin:0;opacity:.85}
.cafe-grid,.j-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.stack-c{display:flex;flex-direction:column;gap:18px;min-width:0}
.glass{background:rgba(18,24,39,.72);border:1px solid rgba(216,189,134,.18);border-radius:18px;padding:18px;backdrop-filter:blur(12px);min-width:0}
.menu-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
.menu-sec{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:#D8BD86;margin:16px 0 6px}
.menu-item{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(245,240,232,.08);color:inherit;padding:10px 6px;cursor:pointer;border-radius:8px}
.menu-item:hover,.menu-item.on{background:rgba(216,189,134,.1)}
.mi-icon{font-size:1.4rem}.mi-text{flex:1;display:flex;flex-direction:column}.mi-text small,.ln small{opacity:.65;font-size:.8rem}
.mi-price{color:#D8BD86;font-variant-numeric:tabular-nums}
.row-w{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.tiny{font-size:.82rem;opacity:.85;display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.tiny select,.editor select{background:#121827;color:#F5F0E8;border:1px solid rgba(216,189,134,.3);border-radius:8px;padding:4px 6px}
.ok{color:#D8BD86}.err{color:#f0a7a0}
.seg{display:flex;gap:4px;background:rgba(0,0,0,.25);padding:4px;border-radius:999px;width:fit-content}
.seg button{background:none;border:0;color:inherit;padding:6px 14px;border-radius:999px;cursor:pointer}
.seg button.on{background:#D8BD86;color:#080D1B}
.addons{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
.btn-gold{background:#D8BD86;color:#080D1B;border:0;border-radius:999px;padding:9px 18px;font-weight:600;cursor:pointer}
.btn-gold:disabled{opacity:.5}
.btn-g.sm{padding:5px 12px}
.badge-g{background:#D8BD86;color:#080D1B;border-radius:999px;font-size:.8rem;padding:1px 9px;font-family:system-ui}
.lines{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px}
.lines li{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(245,240,232,.08)}
.ln{flex:1;display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.ln.link{background:none;border:0;color:inherit;text-align:left;cursor:pointer;padding:0}
.qty{display:flex;gap:6px;align-items:center}
.qty button,.x{background:rgba(245,240,232,.08);border:0;color:inherit;border-radius:8px;min-width:30px;height:30px;cursor:pointer}
.lp{color:#D8BD86;font-variant-numeric:tabular-nums}
.total{display:flex;justify-content:space-between;border-top:1px solid rgba(216,189,134,.3);padding-top:10px}
.in{background:rgba(8,13,27,.6);color:#F5F0E8;border:1px solid rgba(216,189,134,.25);border-radius:10px;padding:9px 12px;flex:1;min-width:0;font:inherit}
.ta{min-height:220px;width:100%;box-sizing:border-box;resize:vertical;line-height:1.6;margin-top:8px}
.empty-s{opacity:.7;font-style:italic}
.brew{text-align:center;padding:14px}
.cup{width:54px;height:40px;margin:30px auto 8px;background:#F5F0E8;border-radius:0 0 18px 18px;position:relative}
.steam{position:absolute;bottom:44px;width:5px;height:22px;border-radius:5px;background:rgba(245,240,232,.5);animation:steam 1.8s infinite ease-out}
.steam:nth-child(1){left:12px}.steam:nth-child(2){left:24px;animation-delay:.4s}.steam:nth-child(3){left:36px;animation-delay:.8s}
@keyframes steam{0%{opacity:0;transform:translateY(8px)}50%{opacity:1}100%{opacity:0;transform:translateY(-14px)}}
@media (prefers-reduced-motion:reduce){.steam{animation:none}}
.prompt{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.4rem;margin:4px 0 10px}
.auth{max-width:420px;margin:30px auto;display:flex;flex-direction:column;gap:12px}
.auth label{flex-direction:column;align-items:stretch}
.j-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-end}
.prompts .chip{font-size:.8rem}
.editor{display:flex;flex-direction:column;gap:6px}
@media (max-width:860px){.cafe-grid,.j-grid{grid-template-columns:1fr}.cafe,.journal{padding:12px 12px 90px}}
@media (max-width:860px){.side button{width:auto;min-width:64px}
.mc{flex-direction:column}
.side{position:fixed;bottom:0;left:0;right:0;width:auto;flex-direction:row;justify-content:center;padding:6px;z-index:20;border-right:0;border-top:1px solid #ffffff15}
.mark{display:none}.main{padding-bottom:76px}
.city{grid-template-columns:1fr}
.panel{position:static;width:auto;max-width:none;margin-top:14px}
.room{min-height:380px;height:56vh}.wordmark{font-size:22px}.top{padding:12px 16px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
