:root{color-scheme:dark;--text:#f2f5f1;--muted:#a6b6bd;--subtle:#74909a;--accent:#b4ead5;--accent-2:#d7b991;--panel:rgba(15,34,48,.58);--panel2:rgba(21,43,56,.72);--line:rgba(211,236,232,.12);--line-light:rgba(211,236,232,.23);--shadow:0 28px 90px rgba(0,9,20,.18);--background:#101d2b;--sky1:#183749;--sky2:#243e50;--sky3:#3d5160}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;font-family:"DM Sans",sans-serif;color:var(--text);background:var(--background);transition:background .7s,color .5s}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}
body[data-theme=light]{color-scheme:light;--text:#1c3544;--muted:#4f6a73;--subtle:#657e82;--accent:#155f68;--accent-2:#9b5d47;--panel:rgba(255,255,255,.55);--panel2:rgba(250,253,253,.72);--line:rgba(33,83,95,.16);--line-light:rgba(33,83,95,.27);--shadow:0 24px 55px rgba(38,72,90,.08);--background:#d5e8ed;--sky1:#b9e4eb;--sky2:#d3e6eb;--sky3:#e6e9df}
body[data-weather=clear][data-theme=dark]{--sky1:#172e45;--sky2:#1a3550;--sky3:#3b4a69}body[data-weather=clear][data-theme=light]{--sky1:#91d3ed;--sky2:#c7e9f3;--sky3:#e5efd8}
body[data-weather=cloudy][data-theme=dark]{--sky1:#203441;--sky2:#354956;--sky3:#4a5861}body[data-weather=cloudy][data-theme=light]{--sky1:#a7bbc5;--sky2:#cfdae0;--sky3:#e6e7e7}
body[data-weather=rain][data-theme=dark]{--sky1:#152535;--sky2:#293e53;--sky3:#3d5163}body[data-weather=rain][data-theme=light]{--sky1:#899eaf;--sky2:#bacbd5;--sky3:#d7e2e7}
body[data-weather=storm][data-theme=dark]{--sky1:#1b1c37;--sky2:#30374d;--sky3:#454463}body[data-weather=storm][data-theme=light]{--sky1:#8997b1;--sky2:#bdc9da;--sky3:#e5e8ee}
body[data-weather=snow][data-theme=dark]{--sky1:#273a4b;--sky2:#40566a;--sky3:#71848d}body[data-weather=snow][data-theme=light]{--sky1:#c2dce5;--sky2:#e2eef1;--sky3:#f6f9f8}
body[data-weather=fog][data-theme=dark]{--sky1:#303e42;--sky2:#4c5960;--sky3:#606d70}body[data-weather=fog][data-theme=light]{--sky1:#c8d6d5;--sky2:#e3e9e5;--sky3:#f1eee9}
.scenery{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 83% 2%,rgba(225,207,166,.12),transparent 42%),linear-gradient(145deg,var(--sky1),var(--sky2) 53%,var(--sky3));transition:background 1.5s}.scenery:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(6,14,21,.23))}.scenery-halo{position:absolute;top:-260px;left:43%;width:820px;height:820px;border-radius:50%;background:radial-gradient(circle,rgba(187,230,223,.085),transparent 62%);filter:blur(12px)}.scenery-cloud{position:absolute;pointer-events:none;width:600px;height:190px;border-radius:50%;opacity:.13;filter:blur(45px);background:rgba(217,237,231,.6);animation:cloudDrift 35s ease-in-out infinite alternate}.cloud-a{top:10%;left:-15%}.cloud-b{top:54%;right:-20%;animation-duration:52s;animation-direction:alternate-reverse}.scenery-stars{position:absolute;inset:0;opacity:.43;background-image:radial-gradient(1px 1px at 20% 10%,#d8f3f7 98%,transparent),radial-gradient(1px 1px at 75% 20%,#fff 98%,transparent),radial-gradient(2px 2px at 82% 75%,#d8f3f7 98%,transparent),radial-gradient(1px 1px at 52% 40%,#fff 98%,transparent),radial-gradient(1px 1px at 9% 79%,#d8f3f7 98%,transparent),radial-gradient(2px 2px at 60% 85%,#fff 98%,transparent);background-size:430px 380px;transition:opacity 1s}body[data-theme=light] .scenery-stars{opacity:0}body[data-weather=rain] .weather-particles,body[data-weather=storm] .weather-particles{position:absolute;inset:0;opacity:.12;background:repeating-linear-gradient(105deg,transparent 0 65px,rgba(202,234,250,.55) 66px,transparent 68px);animation:rainfall 1.2s linear infinite}body[data-weather=snow] .weather-particles{position:absolute;inset:0;opacity:.3;background-image:radial-gradient(2px 2px at 25px 25px,white 99%,transparent),radial-gradient(3px 3px at 80px 90px,white 99%,transparent);background-size:130px 160px;animation:snowfall 14s linear infinite}@keyframes rainfall{to{transform:translateY(48px)}}@keyframes snowfall{to{background-position:25px 400px,80px 450px}}@keyframes cloudDrift{to{transform:translateX(180px) translateY(25px)}}
.site-shell{max-width:1500px;margin:auto;padding:0 4.2vw;isolation:isolate}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;letter-spacing:.2em;line-height:1}.brand-symbol{width:42px;height:42px;border:1px solid var(--accent);color:var(--accent);border-radius:50%;display:grid;place-items:center;font-size:27px;line-height:1}.brand b,.brand small{display:block}.brand b{font:800 19px/1 "Manrope",sans-serif}.brand small{font:600 8px/1.5 "DM Sans",sans-serif;letter-spacing:.38em;color:var(--muted);margin-top:4px}.top-right{display:flex;align-items:center;gap:32px}.live-label,.section-kicker,.eyebrow,.control-heading,.clock-status,.muted-label{font-size:10px;font-weight:800;letter-spacing:.19em}.live-label{display:flex;align-items:center;gap:10px;color:var(--muted)}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a7e7c5;box-shadow:0 0 14px #a7e7c5;flex:none}.live-dot.small{width:5px;height:5px}.location-button{display:flex;align-items:center;gap:10px;min-height:41px;max-width:340px;color:var(--text);background:rgba(255,255,255,.055);border:1px solid var(--line-light);border-radius:22px;padding:0 15px;font-size:13px;font-weight:700}.location-button:hover,.outline-button:hover{background:rgba(160,205,209,.14)}.location-button>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-pin{font-size:21px;color:var(--accent)}.chevron{color:var(--muted)}
.intro{display:flex;justify-content:space-between;gap:20px;padding:40px 0 35px;align-items:end}.eyebrow{display:flex;align-items:center;gap:13px;color:var(--accent);margin-bottom:13px}.eyebrow-line{width:25px;height:1px;background:var(--accent)}h1,h2,p{margin-top:0}.intro h1{font:500 clamp(27px,3.1vw,46px)/1.2 "Manrope",sans-serif;letter-spacing:-.065em;margin-bottom:11px}.intro h1 em{font-family:"Playfair Display",serif;letter-spacing:-.04em;font-weight:500;color:var(--accent-2)}.intro p{font-size:13px;color:var(--muted);margin-bottom:0;line-height:1.65}.intro-date{text-align:right;display:flex;flex-direction:column;gap:5px;min-width:200px}.intro-date span:first-child{font-size:10px;letter-spacing:.19em;font-weight:800;color:var(--accent)}.intro-date strong{font-size:20px;font-family:"Manrope";font-weight:700;letter-spacing:.03em}.intro-date span:last-child{font:11px "DM Mono",monospace;color:var(--muted)}
.controls{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 24px;border:1px solid var(--line);border-radius:15px;background:rgba(15,35,49,.22);margin-bottom:23px}.control-side{display:flex;align-items:center;gap:14px;min-width:0}.control-heading{white-space:nowrap;color:var(--subtle)}.segmented{display:flex;gap:3px;background:rgba(9,21,33,.24);padding:4px;border-radius:10px}.segmented button{white-space:nowrap;padding:10px 13px;border:0;background:none;color:var(--muted);border-radius:8px;font-size:12px;font-weight:700}.segmented button.active{background:var(--panel2);color:var(--text);box-shadow:0 1px 12px rgba(0,0,0,.09)}.style-buttons{display:flex;flex-wrap:wrap;gap:5px}.style-buttons button{border:1px solid var(--line-light);padding:8px 11px;font-size:11px;color:var(--muted);border-radius:8px;background:transparent;white-space:nowrap}.style-buttons button.active{color:var(--accent);border-color:var(--accent);background:rgba(146,235,205,.08)}.control-end{margin-left:auto}.button-pair{display:flex;gap:7px}.outline-button,select{height:37px;padding:0 12px;color:var(--text);border:1px solid var(--line-light);border-radius:9px;background:rgba(14,35,49,.16);font-size:11px;font-weight:700}select{cursor:pointer;min-width:125px}select option{color:#1c3544;background:#e8eff1}button,select{transition:background .2s,border-color .2s}
.dashboard-grid{display:grid;grid-template-columns:minmax(226px,.94fr) minmax(370px,1.66fr) minmax(226px,.94fr);gap:19px;align-items:stretch}.side-col{display:flex;flex-direction:column;gap:18px}.glass-panel{border:1px solid var(--line);border-radius:17px;background:var(--panel);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow)}.weather-now{padding:24px 22px 18px;flex:1;min-height:464px}.panel-header{display:flex;align-items:center;justify-content:space-between}.section-kicker{color:var(--muted);line-height:1.5}.chip{font-size:9px;letter-spacing:.1em;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--accent)}.chip.outlined{padding:6px 9px;border:1px solid var(--line-light);border-radius:20px}.weather-visual{height:126px;display:flex;justify-content:center;align-items:center;position:relative;margin:9px 0 4px}.weather-visual:before{content:"";width:110px;height:110px;position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(226,216,166,.17),transparent 70%);filter:blur(6px)}.weather-visual span{font-size:98px;line-height:1;color:#f5dcb1;text-shadow:0 0 50px rgba(254,213,147,.26);font-family:Arial,sans-serif}.temperature{text-align:center;font:600 clamp(66px,6vw,96px)/1.12 "Manrope",sans-serif;letter-spacing:-.095em}.degree{font-size:.6em;vertical-align:top;position:relative;top:.15em}.unit-c{font-size:17px;vertical-align:top;position:relative;top:16px;letter-spacing:0;color:var(--muted)}.weather-description{text-align:center;font:600 17px "Manrope";margin-top:4px}.weather-place{text-align:center;font-size:11px;color:var(--muted);margin:7px 0 23px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weather-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:19px;gap:7px;text-align:center}.weather-stats>div:not(:last-child){border-right:1px solid var(--line)}.weather-stats span,.clock-bottomline span{display:block;font-size:9px;font-weight:800;letter-spacing:.09em;color:var(--subtle);white-space:nowrap}.weather-stats b{font:600 13px "Manrope";display:block;margin-top:8px;white-space:nowrap}.data-note{display:block;font-size:10px;color:var(--subtle);margin-top:19px;text-align:center}.day-progress{padding:22px}.progress-value{margin:14px 0 12px;display:flex;align-items:baseline;gap:8px}.progress-value strong{font:600 39px/1 "Manrope";letter-spacing:-.04em}.progress-value span{font:11px "DM Mono";color:var(--muted)}.progress-track{height:5px;background:rgba(180,204,215,.17);border-radius:8px;overflow:hidden}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:8px;transition:width .4s}.progress-caption{display:flex;justify-content:space-between;margin-top:11px;gap:8px;color:var(--muted);font-size:10px}
.clock-panel{min-height:602px;padding:26px 24px 22px;display:flex;flex-direction:column}.clock-topline,.clock-bottomline{display:flex;justify-content:space-between;align-items:center;gap:12px}.clock-topline{flex-wrap:wrap}.clock-topline .section-kicker{color:var(--accent)}.clock-status{color:var(--subtle);font-size:8px;display:flex;align-items:center;gap:7px;letter-spacing:.13em}.clock-status i{height:5px;width:5px;border-radius:50%;background:var(--accent)}.clock-stage{flex:1;min-height:448px;display:flex;align-items:center;justify-content:center;padding:30px 0 20px;overflow:hidden}.analog-clock{--dial-bg:rgba(16,35,49,.74);--dial-edge:rgba(224,246,234,.25);--dial-text:#effaf3;--hands:#e8f5f4;position:relative;width:min(100%,405px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 45% 32%,rgba(113,144,155,.14),transparent 65%),var(--dial-bg);border:1px solid var(--dial-edge);box-shadow:0 0 0 8px rgba(182,221,217,.035),0 0 0 12px rgba(182,221,217,.025),inset 0 0 20px rgba(0,0,0,.16),0 24px 70px rgba(0,8,17,.18);color:var(--dial-text)}.dial-inner{position:absolute;inset:11px;border-radius:50%;border:1px solid rgba(232,245,232,.1);pointer-events:none}.dial-marks,.dial-numbers{position:absolute;inset:0}.dial-mark{position:absolute;left:50%;top:50%;height:100%;width:100%;transform:translate(-50%,-50%) rotate(var(--deg));pointer-events:none}.dial-mark:before{content:"";position:absolute;left:calc(50% - .5px);top:6.2%;height:7px;width:1px;background:var(--dial-text);opacity:.36}.dial-mark.major:before{height:13px;width:2px;left:calc(50% - 1px);opacity:.65}.dial-number{position:absolute;top:var(--y);left:var(--x);transform:translate(-50%,-50%);font:500 clamp(13px,2vw,23px) "Playfair Display",serif}.hand{position:absolute;bottom:50%;left:50%;transform-origin:50% 100%;border-radius:100px 100px 5px 5px;z-index:3}.hour-hand{height:27%;width:7px;background:var(--hands);margin-left:-3.5px}.minute-hand{height:36%;width:5px;background:var(--hands);margin-left:-2.5px}.second-hand{height:41%;width:2px;background:var(--accent-2);margin-left:-1px;z-index:4}.hand-center{position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);border:3px solid var(--accent-2);background:var(--dial-bg);border-radius:50%;z-index:5}.dial-brand,.dial-sub{position:absolute;left:50%;transform:translateX(-50%);letter-spacing:.22em;white-space:nowrap;font-size:9px;font-weight:800;color:var(--dial-text);opacity:.8}.dial-brand{top:31%}.dial-sub{top:67%;font-size:7px;opacity:.5}
.analog-clock.style-pilot{--dial-bg:#1b2831;--dial-edge:#b9c4ca;--dial-text:#e9f2f3;--hands:#f1f5ec}.style-pilot .dial-number{font-family:"DM Mono";font-size:clamp(15px,1.75vw,21px);font-weight:500}.style-pilot .dial-brand{letter-spacing:.13em;font-size:11px}.style-pilot .hand{border-radius:3px}.style-pilot .second-hand{background:#f19b70}.style-pilot .dial-inner{border-style:dashed}.analog-clock.style-zen{--dial-bg:rgba(226,241,236,.87);--dial-edge:#c7ded6;--dial-text:#143c47;--hands:#16353d;box-shadow:0 0 0 8px rgba(226,241,236,.055),0 24px 70px rgba(0,8,17,.13)}.style-zen .dial-number{display:none}.style-zen .dial-brand{font-family:"Manrope";letter-spacing:.4em}.style-zen .dial-mark:before{height:4px;width:4px;border-radius:50%;opacity:.38}.style-zen .dial-mark.major:before{height:7px;width:7px}.style-zen .hand-center{background:#143c47;border-color:#143c47}.analog-clock.style-stellar{--dial-bg:rgba(3,15,36,.93);--dial-edge:#7eaece;--dial-text:#90dbd6;--hands:#a2dfe0;box-shadow:0 0 0 7px rgba(98,178,187,.12),inset 0 0 45px rgba(46,104,169,.35),0 0 45px rgba(97,196,218,.13)}.style-stellar .dial-number{font-family:"DM Mono";font-size:clamp(13px,1.8vw,20px);text-shadow:0 0 10px #63f4f1}.style-stellar .hand{box-shadow:0 0 12px rgba(102,251,237,.6)}body[data-theme=light] .analog-clock.style-atelier{--dial-bg:#f5f5e8;--dial-edge:#c8d9cf;--dial-text:#18323c;--hands:#163540}
.digital-clock{width:100%;max-width:565px;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;border-radius:17px;padding:35px 16px;background:radial-gradient(ellipse at center,rgba(135,213,199,.12),transparent 75%);border:1px solid var(--line-light);box-shadow:inset 0 0 30px rgba(8,25,35,.12)}.digital-top,.digital-bottom{font-size:10px;letter-spacing:.19em;color:var(--muted);font-weight:700}.digital-top span{color:var(--accent)}.digital-digits{display:flex;align-items:baseline;justify-content:center;gap:1px;white-space:nowrap;font:700 clamp(48px,5.8vw,99px)/1.2 "Manrope",sans-serif;letter-spacing:-.07em;font-variant-numeric:tabular-nums}.digital-digits .time-separator{color:var(--accent-2);animation:blink 1s step-end infinite}.digital-digits #digitalSeconds{font-size:.4em;letter-spacing:-.035em;color:var(--accent);vertical-align:baseline}.digital-digits .secs-sep{font-size:.4em;color:var(--muted)}.digital-digits .ampm{font-size:.2em;color:var(--muted);margin-left:4px}.digital-bottom{width:100%;display:flex;justify-content:space-around;gap:14px}.digital-clock.style-led{background:rgba(2,15,13,.83);border-color:rgba(81,222,152,.35)}.style-led .digital-top,.style-led .digital-bottom{color:#6dc5a2}.style-led .digital-digits{font-family:"DM Mono",monospace;color:#83f2ad;text-shadow:0 0 22px rgba(112,251,177,.35);letter-spacing:-.1em}.style-led .digital-digits #digitalSeconds{color:#83f2ad}.digital-clock.style-flip{background:rgba(14,31,43,.42)}.style-flip .digital-digits{gap:8px;letter-spacing:0;font:700 clamp(40px,5vw,85px) "DM Mono"}.style-flip .digital-digits #digitalHours,.style-flip .digital-digits #digitalMinutes,.style-flip .digital-digits #digitalSeconds{background:linear-gradient(180deg,rgba(202,230,226,.16) 0 49%,rgba(18,25,34,.33) 50% 51%,rgba(209,234,230,.09) 52%);border:1px solid var(--line-light);padding:15px 8px;border-radius:8px;box-shadow:0 12px 22px rgba(0,0,0,.14)}.style-flip .digital-digits #digitalSeconds{font-size:.52em}.digital-clock.style-editorial{background:transparent;border:0;box-shadow:none}.style-editorial .digital-digits{font:500 clamp(50px,5.7vw,103px) "Playfair Display",serif;letter-spacing:-.1em}.style-editorial .digital-digits .time-separator{color:var(--accent)}.style-editorial .digital-top{border-bottom:1px solid var(--line-light);width:80%;padding-bottom:18px;text-align:center}.style-editorial .digital-bottom{border-top:1px solid var(--line-light);padding-top:18px}@keyframes blink{50%{opacity:.3}}
.orbital-clock{position:relative;width:min(100%,430px);aspect-ratio:1;display:grid;place-items:center}.orbital-clock svg{width:100%;height:100%;filter:drop-shadow(0 0 16px rgba(112,215,215,.1))}.orbit-track{fill:none;stroke:var(--line-light);stroke-width:10}.orbit-progress{fill:none;stroke-width:10;stroke-linecap:round;transform-origin:center;transform:rotate(-90deg);transition:stroke-dashoffset .13s linear;filter:url(#orbGlow)}.orbit-hours{stroke:#c9a9f0}.orbit-minutes{stroke:#86ded2}.orbit-seconds{stroke:#f0c18f}.orbit-center{fill:rgba(113,187,186,.055);stroke:var(--line-light)}.orbit-dot{stroke:rgba(255,255,255,.65);stroke-width:1.5;filter:url(#orbGlow)}.hour-dot{fill:#c9a9f0}.minute-dot{fill:#86ded2}.second-dot{fill:#f0c18f}.orbit-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;gap:10px;white-space:nowrap}.orbit-core span{font:700 8px "DM Sans";letter-spacing:.18em;color:var(--muted)}.orbit-core strong{font:600 clamp(33px,3.6vw,55px) "Manrope";letter-spacing:-.05em}.orbit-core small{font:500 10px "DM Mono";color:var(--accent)}.orbit-legend{position:absolute;left:50%;bottom:-23px;transform:translateX(-50%);display:flex;gap:16px;white-space:nowrap}.orbit-legend span{display:flex;align-items:center;gap:5px;font:700 8px "DM Sans";letter-spacing:.09em;color:var(--muted)}.orbit-legend i{width:7px;height:7px;border-radius:50%}.ring-hour{background:#c9a9f0}.ring-minute{background:#86ded2}.ring-second{background:#f0c18f}.central-celebration{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;margin:-4px 0 20px}.central-celebration span{font-size:8px;letter-spacing:.17em;color:var(--subtle);font-weight:800}.central-celebration strong{font:500 15px/1.4 "Playfair Display",serif;color:var(--accent-2)}.clock-bottomline{border-top:1px solid var(--line);padding-top:19px;align-items:flex-start}.clock-bottomline div{min-width:0}.clock-bottomline strong{display:block;font:600 11px/1.5 "DM Mono";margin-top:7px;word-break:break-word}
.occasion{flex:1;padding:24px 24px 0;min-height:464px;overflow:hidden;position:relative;display:flex;flex-direction:column}.occasion-star{color:var(--accent-2);font-size:21px;line-height:1}.occasion-tag{font-size:9px;letter-spacing:.1em;font-weight:800;color:var(--accent);padding:7px 10px;border:1px solid var(--line-light);border-radius:30px;align-self:flex-start;margin-top:34px}.occasion-symbol{font-size:58px;color:var(--accent-2);line-height:1;margin:22px 0 12px}.occasion h2{font:500 clamp(22px,2vw,30px)/1.18 "Playfair Display",serif;letter-spacing:-.03em;margin-bottom:13px}.occasion p{color:var(--muted);font-size:12px;line-height:1.8;margin-bottom:16px}.occasion a{color:var(--accent);text-decoration:none;font-size:11px;font-weight:700;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.occasion a:hover{text-decoration:underline}.occasion-date{margin:auto -24px 0;padding:16px 24px;display:flex;gap:13px;align-items:center;border-top:1px solid var(--line);background:rgba(255,255,255,.022);position:relative}.occasion-date span:first-child{font:600 43px/1 "Manrope";letter-spacing:-.08em}.occasion-date span:nth-child(2){font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--muted)}.date-decoration{margin-left:auto;color:var(--accent-2);font-size:24px}.note-panel{padding:20px 24px;display:flex;gap:14px;align-items:center;min-height:115px}.note-panel>span{color:var(--accent-2);font-size:34px}.note-panel p{font:500 15px/1.5 "Playfair Display",serif;font-style:italic;margin:0;color:var(--muted)}
.forecast-section,.history-section{margin-top:54px}.section-title-row{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:19px}.section-title-row h2{font:600 clamp(22px,2.35vw,30px)/1.3 "Manrope";letter-spacing:-.045em;margin:6px 0 0}.soft-period{color:var(--accent-2)}.muted-label{color:var(--subtle);letter-spacing:.04em}.forecast-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.forecast-placeholder{grid-column:1/-1;text-align:center;padding:36px;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:13px}.forecast-card{background:var(--panel);border:1px solid var(--line);border-radius:15px;min-height:164px;padding:18px 21px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}.forecast-card:first-child{border-color:var(--line-light);background:var(--panel2)}.forecast-card:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;background:rgba(197,223,214,.025);right:-75px;top:-40px}.forecast-day{font-size:12px;font-weight:800}.forecast-date{color:var(--subtle);font-size:10px;margin-top:-5px}.forecast-mid{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:3px}.forecast-icon{font:36px Arial,sans-serif;color:var(--accent-2)}.forecast-temp{font:700 23px "Manrope";letter-spacing:-.045em}.forecast-temp small{font-size:13px;font-weight:500;color:var(--muted)}.forecast-bottom{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:7px}.forecast-bottom b{font-weight:600;color:var(--accent)}
.history-section .section-title-row{margin-bottom:25px}.history-section .section-title-row p{font-size:12px;color:var(--muted);margin:8px 0 0}.ticker-control{height:37px}.marquee-window{overflow:hidden;margin:0 -4.2vw;position:relative;padding:3px 0 14px;mask-image:linear-gradient(90deg,transparent,black 4%,black 96%,transparent)}.marquee-track{display:flex;width:max-content;gap:16px;animation:marqueeMove 85s linear infinite}.marquee-window:hover .marquee-track,.marquee-track.paused{animation-play-state:paused}.marquee-card{width:278px;min-height:178px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:21px;display:flex;flex-direction:column;text-decoration:none;flex:none;transition:background .2s,transform .2s}.marquee-card:hover{transform:translateY(-3px);background:var(--panel2)}.marquee-year{font:700 11px "DM Mono";color:var(--accent-2);letter-spacing:.14em;display:flex;justify-content:space-between}.marquee-card p{font-size:12px;color:var(--text);line-height:1.55;margin:18px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.marquee-card .marquee-more{font-size:10px;color:var(--accent);margin-top:auto;letter-spacing:.1em}.loading-history{padding:35px;color:var(--muted);font-size:13px}.history-foot{display:flex;justify-content:space-between;gap:10px;padding-top:10px;color:var(--subtle);font-size:10px}.history-foot a{text-decoration:none;letter-spacing:.07em;font-weight:700}@keyframes marqueeMove{to{transform:translateX(calc(-50% - 8px))}}
.radio-panel{margin-top:46px;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 27px}.radio-identity{display:flex;align-items:center;gap:17px}.radio-icon{width:56px;height:56px;border:1px solid var(--line-light);border-radius:50%;display:grid;place-items:center;font-size:30px;color:var(--accent-2);background:rgba(230,216,172,.065)}.radio-identity h2{margin:5px 0 0;font:700 18px "Manrope";letter-spacing:-.035em}.radio-air{font:700 9px "DM Sans";letter-spacing:.08em;color:var(--accent);margin-left:9px}.radio-player{display:flex;align-items:center;gap:18px;min-width:0}.play-button{width:49px;height:49px;border:0;border-radius:50%;color:#163e46;background:var(--accent);font-size:18px;flex:none}.play-button:hover{filter:brightness(1.1)}.radio-station{min-width:225px;display:flex;flex-direction:column;gap:5px}.radio-station label{font-size:9px;color:var(--subtle);font-weight:800;letter-spacing:.14em}.radio-station select{padding:0 6px 0 0;min-width:0;max-width:280px;font-size:13px;font-weight:700;border:0;height:25px;background:transparent;color:var(--text)}.radio-station>span{font-size:10px;color:var(--muted)}.radio-volume{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:16px}.radio-volume input{width:92px;accent-color:var(--accent)}.radio-volume span:last-child{font:11px "DM Mono";min-width:33px}.footer{display:flex;justify-content:space-between;gap:25px;align-items:center;color:var(--subtle);font-size:9px;font-weight:700;letter-spacing:.07em;min-height:91px;margin-top:30px;border-top:1px solid var(--line)}.footer a{text-decoration:none;color:var(--muted)}.footer a:hover{text-decoration:underline}
.modal-backdrop{position:fixed;z-index:20;inset:0;background:rgba(5,15,25,.67);display:flex;justify-content:center;align-items:center;padding:20px;backdrop-filter:blur(12px)}.modal{width:min(100%,495px);padding:28px;background:#203b4a;color:#eef7f4;box-shadow:0 24px 100px rgba(0,0,0,.35)}.modal-head{display:flex;justify-content:space-between}.modal h2{font:700 27px "Manrope";margin:7px 0 13px}.modal>p{font-size:13px;color:#c0d0d0;line-height:1.65}.icon-button{width:35px;height:35px;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:white;background:transparent;font-size:26px;line-height:1}.primary-button{width:100%;height:43px;background:#addfca;border:0;border-radius:9px;color:#163a40;font-weight:800}.search-divider{text-align:center;font-size:10px;color:#b5c6c8;letter-spacing:.18em;margin:25px 0 16px}.search-field{display:flex;border:1px solid rgba(255,255,255,.25);border-radius:10px;overflow:hidden}.search-field input{background:rgba(0,0,0,.12);border:0;outline:none;color:white;width:100%;min-width:0;padding:13px}.search-field input::placeholder{color:#9caeb5}.search-field button{border:0;background:#addfca;color:#163a40;padding:0 13px;font-size:12px;font-weight:800}.city-results{max-height:220px;overflow:auto;margin-top:12px;display:flex;flex-direction:column;gap:5px}.city-results button{width:100%;text-align:left;padding:11px 13px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);color:white;border-radius:8px}.city-results button:hover{background:rgba(255,255,255,.15)}.city-results p{font-size:12px;color:#c0d0d0}.modal .modal-note{margin-top:20px;margin-bottom:0;font-size:10px;color:#aac0c5}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:40;max-width:min(92vw,600px);border:1px solid var(--line-light);background:#244051;color:#f2f9f8;padding:13px 20px;border-radius:12px;font-size:12px;box-shadow:0 12px 45px rgba(0,0,0,.2)}
@media(max-width:1300px){.controls{flex-wrap:wrap}.control-end{margin-left:0}.dashboard-grid{grid-template-columns:minmax(210px,.9fr) minmax(320px,1.5fr) minmax(210px,.9fr)}.clock-panel{padding:22px 18px}.analog-clock{width:min(100%,360px)}.weather-now{padding:22px 15px 16px}.weather-stats span{font-size:8px}.occasion{padding:22px 18px 0}.occasion-date{margin-left:-18px;margin-right:-18px;padding:15px 18px}.radio-volume{display:none}}
@media(max-width:1060px){.dashboard-grid{grid-template-columns:minmax(230px,.85fr) minmax(360px,1.35fr)}.occasion-col{grid-column:1/-1;display:grid;grid-template-columns:1.75fr 1fr}.occasion{min-height:260px}.occasion-tag{margin-top:17px}.occasion-symbol{position:absolute;top:36px;right:25px;font-size:48px;opacity:.5}.occasion h2{max-width:370px}.occasion p{max-width:530px}.occasion-date{margin-top:auto}.note-panel{min-height:0}.forecast-grid{gap:9px}.forecast-card{padding:16px 13px}}
@media(max-width:760px){.site-shell{padding:0 20px}.topbar{height:74px}.live-label{display:none}.intro{padding:26px 0;align-items:flex-start}.intro-date{min-width:120px}.intro-date strong{font-size:13px}.intro p{font-size:12px}.intro h1{font-size:clamp(26px,4.8vw,38px)}.controls{gap:13px;padding:14px}.control-side{gap:9px;flex-wrap:wrap}.control-heading{width:100%}.style-side{min-width:50%}.dashboard-grid{grid-template-columns:1fr}.clock-panel{order:0;min-height:530px}.weather-col{order:1;display:grid;grid-template-columns:1.35fr 1fr;align-items:stretch}.occasion-col{order:2;grid-template-columns:1.5fr 1fr}.weather-now{min-height:350px}.weather-visual{height:74px}.weather-visual span{font-size:64px}.weather-stats{margin-top:15px}.temperature{font-size:64px}.weather-place{margin-bottom:15px}.day-progress{display:flex;flex-direction:column;justify-content:center}.clock-stage{min-height:420px}.analog-clock{width:min(100%,355px)}.forecast-grid{grid-template-columns:repeat(5,minmax(130px,1fr));overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}.forecast-card{scroll-snap-align:start}.marquee-window{margin:0 -20px}.radio-panel{flex-wrap:wrap}.radio-player{width:100%;justify-content:space-between}.radio-volume{display:flex}.footer{flex-wrap:wrap;gap:5px;padding:16px 0}.footer span{width:100%}}
@media(max-width:520px){.brand b{font-size:16px}.brand-symbol{width:36px;height:36px}.location-button{font-size:11px;max-width:175px}.intro{display:block}.intro-date{margin-top:22px;display:flex;flex-direction:row;align-items:center;gap:10px;text-align:left}.intro-date span:last-child{display:none}.intro-date strong{font-size:15px}.intro h1{font-size:29px}.intro p{max-width:310px}.controls{display:grid;grid-template-columns:1fr}.segmented{width:100%}.segmented button{flex:1;font-size:11px;padding:10px 5px}.segmented button span{display:inline}.style-side{min-width:0}.button-pair{width:100%}.button-pair select{flex:1}.clock-panel{min-height:470px;padding:19px 15px}.clock-status{font-size:7px}.clock-stage{min-height:348px;padding:20px 0 25px}.analog-clock{width:min(100%,305px)}.dial-brand{font-size:7px}.dial-sub{font-size:6px}.dial-number{font-size:17px}.clock-bottomline{gap:6px}.clock-bottomline span{font-size:7px}.clock-bottomline strong{font-size:9px}.weather-col,.occasion-col{grid-template-columns:1fr}.weather-now{min-height:auto;padding:20px}.weather-visual{height:110px}.weather-visual span{font-size:85px}.temperature{font-size:76px}.weather-stats{margin-top:22px}.day-progress{min-height:155px}.occasion{min-height:365px}.occasion-symbol{position:static;font-size:38px;margin:18px 0}.note-panel{min-height:105px}.digital-clock{min-height:230px;padding:20px 7px}.digital-digits{font-size:clamp(36px,11vw,54px)}.style-flip .digital-digits{font-size:clamp(31px,9vw,45px);gap:2px}.style-flip .digital-digits #digitalHours,.style-flip .digital-digits #digitalMinutes,.style-flip .digital-digits #digitalSeconds{padding:10px 3px}.orbital-clock{width:min(100%,320px)}.orbit-core strong{font-size:35px}.orbit-legend{bottom:-14px;gap:9px}.orbit-legend span{font-size:7px}.forecast-section,.history-section{margin-top:40px}.section-title-row h2{font-size:23px}.section-title-row .muted-label{display:none}.forecast-grid{grid-template-columns:repeat(5,145px)}.radio-panel{padding:17px}.radio-identity h2{font-size:16px}.radio-icon{width:46px;height:46px}.radio-player{gap:10px;flex-wrap:wrap}.radio-station{min-width:0;flex:1}.radio-station select{max-width:100%;font-size:11px}.radio-volume{margin-left:60px;width:100%}.radio-volume input{flex:1}.ticker-control{font-size:10px;padding:0 9px}.marquee-track{animation-duration:100s}.marquee-card{width:252px}.footer{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.marquee-window{overflow-x:auto;mask-image:none}.marquee-track{animation:none!important}}

/* ═════════════ v2 · Optimización ═════════════ */
.hand{will-change:transform}.controls{flex-wrap:wrap;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.controls>.control-side:first-child{flex:1 1 100%}.outline-button{white-space:nowrap}
.segmented{flex-wrap:wrap}.control-side:first-child{flex-wrap:wrap}
.mini-button{margin-left:6px;width:24px;height:24px;border:1px solid var(--line-light);border-radius:6px;background:transparent;color:var(--muted);font-size:12px;line-height:1;padding:0;display:inline-grid;place-items:center}.mini-button:hover{color:var(--accent);border-color:var(--accent)}
.clock-panel:fullscreen{background:var(--background);padding:4vh 4vw;justify-content:center}.clock-panel:fullscreen .clock-stage{min-height:70vh}.clock-panel:fullscreen .analog-clock,.clock-panel:fullscreen .orbital-clock{width:min(70vh,90vw)}.clock-panel:fullscreen .fun-clock{width:min(110vh,92vw)}
.clock-bottomline div:last-child strong{white-space:nowrap}
.mini-kicker{display:block;font-size:9px;font-weight:800;letter-spacing:.17em;color:var(--subtle);margin:18px 0 10px}

/* ═════════════ Relojes divertidos ═════════════ */
.fun-clock{width:min(100%,540px);display:flex;flex-direction:column;align-items:center;justify-content:center}
.fun-canvas{width:100%;display:block;border-radius:16px}
.tetris-wrap{width:100%;display:flex;flex-direction:column;gap:12px}.tetris-wrap .fun-canvas{border-radius:10px;box-shadow:0 18px 50px rgba(0,0,0,.28);image-rendering:pixelated}
.tetris-stats{display:flex;justify-content:space-between;gap:10px;font:600 11px "DM Mono",monospace;letter-spacing:.12em;color:var(--muted)}.tetris-stats b{color:var(--accent);font-weight:700;margin-left:4px}
.tetris-gameboy .tetris-stats b{color:#8bac0f}
.word-clock{position:relative;width:min(100%,470px);padding:30px 30px 22px;border-radius:18px;background:#0b141c;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 40px rgba(0,0,0,.4),0 20px 50px rgba(0,0,0,.25)}
.word-grid{display:grid;grid-template-columns:repeat(11,1fr);gap:4px 2px;text-align:center;font:600 clamp(16px,3.3vw,26px)/1.45 "DM Mono",monospace}
.word-grid span{color:rgba(255,255,255,.12);transition:color .5s,text-shadow .5s}.word-grid span.on{color:#fdf3d8;text-shadow:0 0 12px rgba(255,214,140,.75),0 0 2px #fff}
.word-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.12);transition:background .4s,box-shadow .4s}.word-dot.on{background:#fdf3d8;box-shadow:0 0 10px rgba(255,214,140,.8)}
.dot-0{top:11px;left:11px}.dot-1{top:11px;right:11px}.dot-2{bottom:11px;right:11px}.dot-3{bottom:11px;left:11px}
.word-caption{margin:16px 0 0;text-align:center;font:500 13px "Playfair Display",serif;font-style:italic;color:rgba(255,255,255,.55)}
body[data-theme=light] .word-clock{background:#f6f2e8;border-color:rgba(0,0,0,.08);box-shadow:inset 0 0 30px rgba(0,0,0,.05),0 20px 50px rgba(30,60,80,.12)}body[data-theme=light] .word-grid span{color:rgba(20,40,50,.13)}body[data-theme=light] .word-grid span.on{color:#14303c;text-shadow:none}body[data-theme=light] .word-caption{color:#4f6a73}body[data-theme=light] .word-dot{background:rgba(20,40,50,.12)}body[data-theme=light] .word-dot.on{background:#14303c;box-shadow:none}
.fun-creative .fun-canvas{max-width:430px}

/* ═════════════ Fondos personalizados ═════════════ */
.bg-layer{position:absolute;inset:-30px;background-size:cover;background-position:center;opacity:0;transition:opacity .8s}.bg-dim{position:absolute;inset:0;background:#000;opacity:0;transition:opacity .4s}
.scenery:not([data-bg=weather]) .bg-layer{opacity:1}
.scenery:not([data-bg=weather]) :is(.scenery-halo,.scenery-cloud,.scenery-stars,.weather-particles){display:none}
.scenery[data-bg=aurora]{background:linear-gradient(170deg,#030b16,#06222b 50%,#0d1830)}
.scenery[data-bg=galaxia]{background:radial-gradient(ellipse at 70% 20%,#2a1b55,transparent 55%),radial-gradient(ellipse at 20% 80%,#0f2f55,transparent 50%),#05060f}
.scenery[data-bg=oceano]{background:linear-gradient(180deg,#0c5a78,#06304a 55%,#02172a)}
.scenery[data-bg=atardecer]{background:linear-gradient(180deg,#2a1747,#7a2f5f 35%,#d2585a 65%,#f8b26a)}
.scenery[data-bg=bosque]{background:linear-gradient(180deg,#0d1f17,#173524 55%,#284a31)}
.scenery[data-bg=sakura]{background:linear-gradient(160deg,#2d1b28,#6a3a52 55%,#c98aa3)}
.scenery[data-bg=synthwave]{background:linear-gradient(180deg,#0d0020,#2c0750 50%,#6a1170)}
.scenery[data-bg=desierto]{background:linear-gradient(180deg,#2b2147,#8b4a63 40%,#e0875a 75%,#f6c27a)}
.scenery[data-bg=medianoche]{background:#0d1117}
.scenery[data-bg=image],.scenery[data-bg=url]{background:#0d1117}
.bg-layer i{position:absolute;display:block;pointer-events:none}
.petal{top:-30px;width:14px;height:10px;border-radius:12px 0 12px 0;background:linear-gradient(135deg,#ffd1dc,#f39ab6);opacity:.85;animation:petalFall linear infinite}
@keyframes petalFall{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(60px,55vh) rotate(200deg)}100%{transform:translate(-20px,110vh) rotate(420deg)}}
.star{height:auto;aspect-ratio:1;border-radius:50%;background:#fff;animation:twinkle 3.5s ease-in-out infinite}.nebula{inset:10% 15% 30% 30%;background:radial-gradient(ellipse,rgba(160,90,255,.25),transparent 65%);filter:blur(30px);animation:nebula 30s ease-in-out infinite alternate}
@keyframes twinkle{50%{opacity:.25}}@keyframes nebula{to{transform:translate(-8%,6%) scale(1.15)}}
.aurora-band{left:-20%;width:140%;height:45%;top:5%;filter:blur(40px);opacity:.55;border-radius:50%;animation:aurora 16s ease-in-out infinite alternate}
.aurora-band.b0{background:linear-gradient(90deg,transparent,#2cf5a8,#1fb6ff,transparent)}.aurora-band.b1{top:18%;background:linear-gradient(90deg,transparent,#a86bff,#2cf5a8,transparent);animation-duration:22s;animation-direction:alternate-reverse}.aurora-band.b2{top:-5%;background:linear-gradient(90deg,transparent,#1fb6ff,transparent);animation-duration:28s;opacity:.35}
@keyframes aurora{0%{transform:translateX(-6%) skewY(-6deg) scaleY(.8)}100%{transform:translateX(8%) skewY(5deg) scaleY(1.2)}}
.synth-sun{left:50%;top:34%;width:34vmin;height:34vmin;opacity:.8;transform:translateX(-50%);border-radius:50%;background:repeating-linear-gradient(180deg,#ffd23f 0 9%,#ff5f9e 9% 10.5%),linear-gradient(#ffd23f,#ff2e88);background-blend-mode:multiply;box-shadow:0 0 80px rgba(255,46,136,.5);-webkit-mask:linear-gradient(180deg,#000 60%,transparent 60%,transparent 63%,#000 63%,#000 72%,transparent 72%,transparent 76%,#000 76%);mask:linear-gradient(180deg,#000 60%,transparent 60%,transparent 63%,#000 63%,#000 72%,transparent 72%,transparent 76%,#000 76%)}
.synth-grid{left:-50%;right:-50%;bottom:-10%;height:50%;background:linear-gradient(transparent 0 94%,rgba(255,46,180,.7) 94%) 0 0/100% 40px,linear-gradient(90deg,transparent 0 97%,rgba(255,46,180,.7) 97%) 0 0/60px 100%;transform:perspective(300px) rotateX(62deg);transform-origin:top;animation:grid 1.6s linear infinite}
@keyframes grid{to{background-position:0 40px,0 0}}
.wave{left:-50%;width:200%;height:30%;bottom:-8%;border-radius:45%;background:rgba(80,200,230,.12);animation:wave 14s linear infinite}.wave.w1{bottom:-12%;animation-duration:20s;background:rgba(40,160,210,.12)}.wave.w2{bottom:-16%;animation-duration:26s;background:rgba(10,120,180,.16)}
@keyframes wave{to{transform:rotate(360deg)}}
.bubble{bottom:-20px;width:9px;height:9px;border-radius:50%;border:1px solid rgba(200,240,255,.5);animation:bubble linear infinite}@keyframes bubble{to{transform:translate(20px,-110vh)}}
.firefly{width:5px;height:5px;border-radius:50%;background:#e6ff8a;box-shadow:0 0 12px 3px rgba(230,255,138,.6);animation:firefly ease-in-out infinite alternate}@keyframes firefly{0%{transform:translate(0,0);opacity:.1}50%{opacity:1}100%{transform:translate(60px,-80px);opacity:.2}}
.dune{left:-10%;width:120%;height:40%;border-radius:50% 50% 0 0}.dune.d0{bottom:-12%;background:#b5633f;opacity:.75}.dune.d1{bottom:-22%;left:-40%;background:#8a4632;opacity:.85}
.bg-modal{width:min(100%,560px);max-height:92vh;overflow:auto}
.bg-themes{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.bg-themes button{display:flex;flex-direction:column;gap:6px;align-items:center;padding:6px 4px 8px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.04);color:#dbe7e7;font-size:10px;font-weight:700}
.bg-themes button.active{border-color:#addfca;box-shadow:0 0 0 2px rgba(173,223,202,.35)}
.bg-swatch{width:100%;aspect-ratio:1.4;border-radius:7px;display:block}
.bg-custom-grid{display:grid;gap:10px}
.bg-upload{display:flex;align-items:center;justify-content:center;height:43px;border:1px dashed rgba(255,255,255,.35);border-radius:10px;font-size:12px;font-weight:800;cursor:pointer;color:#e6f2ef}.bg-upload:hover{background:rgba(255,255,255,.06)}.bg-upload input{position:absolute;width:1px;height:1px;opacity:0}
.bg-upload:focus-within{outline:2px solid #addfca;outline-offset:2px}
.bg-gradient{display:flex;align-items:center;gap:10px;font-size:12px;color:#c0d0d0}.bg-gradient span{flex:1}.bg-gradient input{width:46px;height:32px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:transparent;padding:2px;cursor:pointer}
.bg-sliders{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 14px}.bg-sliders label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#c0d0d0}.bg-sliders input{accent-color:#addfca}
.outline-button.full{width:100%}.modal .outline-button{color:#eef7f4;border-color:rgba(255,255,255,.25)}

/* ═════════════ Luna y minimapa solar ═════════════ */
.sky-section{margin-top:54px}.sky-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:19px}
.moon-panel,.solar-panel{padding:24px}
.moon-hero{display:flex;align-items:center;gap:22px;margin-top:18px}
.moon-svg{width:min(42%,190px);flex:none;filter:drop-shadow(0 0 28px rgba(255,246,210,.22))}
.moon-dark{fill:#2b3446}.moon-crater{fill:rgba(60,60,70,.13)}.moon-rim{fill:none;stroke:rgba(255,255,255,.22);stroke-width:2}
body[data-theme=light] .moon-dark{fill:#3b4658}
.moon-info h3{font:500 clamp(22px,2.2vw,30px)/1.15 "Playfair Display",serif;margin:0 0 6px;letter-spacing:-.02em}.moon-info p{color:var(--accent);font-size:12px;font-weight:700;margin:0 0 14px}
.astro-stats{display:grid;grid-template-columns:repeat(3,auto);gap:10px 14px;margin:0}.astro-stats dt{font-size:8px;font-weight:800;letter-spacing:.12em;color:var(--subtle)}.astro-stats dd{margin:4px 0 0;font:600 12px "DM Mono",monospace;white-space:nowrap}
.moon-next{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.moon-next li{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025)}
.moon-ev-emoji{font-size:20px}.moon-next b{display:block;font-size:11px}.moon-next small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.moon-next em{margin-left:auto;font:600 10px "DM Mono";color:var(--accent);font-style:normal;white-space:nowrap}
.moon-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.moon-day{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 2px;border-radius:9px;border:1px solid transparent}.moon-day.today{border-color:var(--line-light);background:rgba(255,255,255,.04)}
.moon-day svg{width:100%;max-width:38px}.moon-day span{font-size:8px;font-weight:800;letter-spacing:.08em;color:var(--subtle)}.moon-day small{font:10px "DM Mono";color:var(--muted)}
.solar-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:center;margin-top:14px}
.solar-map{width:100%;height:auto;overflow:visible}
.map-orbit{fill:none;stroke:var(--line-light);stroke-width:1;stroke-dasharray:2 4}.map-orbit.earth-orbit{stroke:rgba(90,169,255,.45);stroke-dasharray:none}
.map-trail{fill:none;stroke:#5aa9ff;stroke-width:3;stroke-linecap:round;opacity:.55}
.map-sun{fill:#ffd66b}.map-earth{stroke:#cfe6ff;stroke-width:1.5}.map-moon{fill:#f4f1de;stroke:#1d2633;stroke-width:.8}.map-moon-orbit{fill:none;stroke:var(--line-light);stroke-width:1}
.map-sunline{stroke:rgba(255,214,107,.3);stroke-width:1;stroke-dasharray:3 3}
.map-label{font:700 8px "DM Sans",sans-serif;letter-spacing:.1em;fill:var(--muted)}.map-label.strong{fill:var(--text)}
.map-season{font:800 7px "DM Sans";letter-spacing:.12em;fill:var(--accent-2)}.map-tick{stroke:var(--accent-2);stroke-width:1.5}.map-vernal{font:700 11px "DM Sans";fill:var(--subtle)}
.earth-moon{border:1px solid var(--line);border-radius:12px;padding:10px 12px 4px;background:rgba(255,255,255,.025)}.earth-moon .mini-kicker{margin:0 0 4px}.earth-moon svg{width:100%;max-height:170px}
.em-ray{stroke:#ffd66b;stroke-width:1.5;opacity:.5}.em-earth-night{fill:#1b2a44}.em-earth-day{fill:#5aa9ff}.em-moon-night{fill:#2a2f3a}.em-moon-day{fill:#f4f1de}
.astro-list{margin:14px 0 0;display:grid;gap:9px}.astro-list div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}
.astro-list dt{font-size:10px;font-weight:700;color:var(--subtle);letter-spacing:.03em;white-space:nowrap}.astro-list dd{margin:0;font-size:11px;text-align:right;line-height:1.4}.astro-list small{color:var(--muted);font-family:"DM Mono"}
.data-note.left{text-align:left;margin-top:14px}

/* ═════════════ Radio ampliada ═════════════ */
.radio-panel{flex-direction:column;align-items:stretch}.radio-main{display:flex;align-items:center;justify-content:space-between;gap:22px}
.station-count{display:block;font-size:10px;color:var(--subtle);margin-top:4px}
.skip-button{width:36px;height:36px;border:1px solid var(--line-light);border-radius:50%;background:transparent;color:var(--text);font-size:12px;flex:none}.skip-button:hover{border-color:var(--accent);color:var(--accent)}
.radio-icon{position:relative}.radio-icon .eq{display:none;align-items:flex-end;gap:3px;height:22px}.radio-icon .eq i{width:4px;background:var(--accent-2);border-radius:2px;animation:eq 1s ease-in-out infinite}.radio-icon .eq i:nth-child(2){animation-delay:-.4s}.radio-icon .eq i:nth-child(3){animation-delay:-.7s}.radio-icon .eq i:nth-child(4){animation-delay:-.2s}
.radio-panel.is-playing .eq{display:flex}.radio-panel.is-playing .note{display:none}@keyframes eq{0%,100%{height:5px}50%{height:22px}}
.radio-station select optgroup{font-weight:800;color:#3d5560}
.radio-extra{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:14px}
.station-form{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 100%}.station-form input{flex:1 1 200px;height:37px;border-radius:9px;border:1px solid var(--line-light);background:rgba(0,0,0,.12);color:var(--text);padding:0 12px;font-size:12px}
.primary-button.small{width:auto;height:37px;padding:0 18px}

@media(max-width:1060px){.sky-grid{grid-template-columns:1fr}}
@media(max-width:760px){.solar-body{grid-template-columns:1fr}.segmented{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.control-side:first-child{width:100%}.radio-main{flex-wrap:wrap}.bg-themes{grid-template-columns:repeat(4,1fr)}}
@media(max-width:520px){.moon-hero{flex-direction:column;text-align:center}.moon-svg{width:60%}.astro-stats{justify-content:center}.moon-next{grid-template-columns:1fr}.moon-panel,.solar-panel{padding:18px}.word-clock{padding:24px 16px 18px}.bg-themes{grid-template-columns:repeat(3,1fr)}.bg-sliders{grid-template-columns:1fr}.astro-list div{flex-direction:column;gap:3px}.astro-list dd{text-align:left}.clock-bottomline{flex-wrap:wrap}.clock-bottomline div{flex:1 1 40%}}
@media(prefers-reduced-motion:reduce){.bg-layer i{animation:none!important}}

/* ═════════════ v3 · Fondos canvas, modo normal y minimapa animado ═════════════ */
.bg-canvas{position:absolute;inset:0;width:100%;height:100%}
.scenery:is([data-bg=musica],[data-bg=hiperespacio],[data-bg=codigo],[data-bg=bokeh]){background:#03040c}
body[data-motion=normal] .bg-layer i,body[data-motion=normal] .scenery-cloud,body[data-motion=normal] .weather-particles{animation-play-state:paused!important}
body[data-motion=normal] .radio-icon .eq i{animation:none}
.motion-button[aria-pressed=false]{color:var(--muted);border-style:dashed}
.motion-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
.solar-modes{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.solar-modes button{border:1px solid var(--line-light);background:transparent;color:var(--muted);padding:7px 11px;border-radius:999px;font-size:11px;font-weight:700}
.solar-modes button.active{color:var(--accent);border-color:var(--accent);background:rgba(146,235,205,.08)}
.solar-mode-info{font-size:11px;color:var(--muted);margin:10px 0 0;line-height:1.5}
.solar-visual{position:relative;display:flex;flex-direction:column;gap:10px}
.solar-canvas{width:100%;aspect-ratio:1;border-radius:14px;display:block;background:#04050c}
.solar-anim-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.solar-anim-controls select{min-width:0;height:34px}.solar-anim-controls .outline-button{height:34px}
.solar-date{margin-left:auto;font:600 11px "DM Mono",monospace;color:var(--accent)}
.fun-mechanical .fun-canvas,.fun-animals .fun-canvas{max-width:470px;margin:auto}
.fun-3d .fun-canvas{border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
@media(max-width:760px){.segmented{grid-template-columns:repeat(4,1fr)}}
@media(max-width:520px){.segmented{grid-template-columns:repeat(2,1fr)}.solar-date{margin-left:0;width:100%}}
.button-pair{flex-wrap:wrap}
