body,button,input,textarea,select{font-family:var(--body-font,Arial,sans-serif)}
h1,h2,h3,h4,.page-heading h1,.page-heading h2,.lesson-card>h1,.course-body h2,.post h3,.post-dialog h2,.side-panel h3,.form h2,.lesson-outline h3{font-family:var(--heading-font,Arial,sans-serif)!important}
.icon{stroke-linecap:round;stroke-linejoin:round}.icon[data-icon=moon]{width:32px;height:32px;fill:currentColor;stroke-width:1}
html[data-style="2"] .icon,html[data-style="5"] .icon,html[data-style="8"] .icon{stroke-width:2.4}
html[data-style="3"] .icon,html[data-style="6"] .icon,html[data-style="9"] .icon{stroke-linecap:square;stroke-linejoin:miter}
html[data-style="4"] .panel,html[data-style="4"] .course-card{box-shadow:4px 4px 0 var(--line);border-width:2px}
html[data-style="5"] .course-card,html[data-style="5"] .panel{box-shadow:none;border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
html[data-style="6"] .panel,html[data-style="6"] .course-card{box-shadow:0 12px 38px #6254bc18}
html[data-style="7"] .page-heading h1{letter-spacing:1px;font-variant:small-caps}
html[data-style="8"] .page-heading h1,html[data-style="8"] .course-body h2{font-weight:900;letter-spacing:-1.2px}
html[data-style="9"] .btn{border-radius:30px;padding-inline:20px}
html[data-style="10"] .panel,html[data-style="10"] .course-card{border-top:3px solid var(--accent);box-shadow:none}
html[data-theme=dark]{--ink:#f5f7ff;--muted:#c1cce0;--line:#475773}
html[data-theme=dark] .lesson-outline,html[data-theme=dark] .lesson-outline a,html[data-theme=dark] .lesson-outline summary{color:#f2f5fc}
html[data-theme=dark] .lesson-outline a.active{background:#314764;color:white}
html[data-theme=dark] .lesson-outline .dot{background:transparent;border-color:#edf4ff;color:white;box-shadow:none}
html[data-theme=dark] .lesson-outline .dot.done{background:#f4f7ff;border-color:#f4f7ff;color:#16366a;box-shadow:0 0 0 3px #ffffff12}
html[data-theme=dark] .progress{background:#42536c}html[data-theme=dark] .progress>span{background:#e1edff}
html[data-theme=dark] .rich-content a,html[data-theme=dark] .chat-message a,html[data-theme=dark] .comment-bubble a{color:#a8cdff}
.city-marker{background:none!important;border:0!important;width:38px!important;height:48px!important;box-shadow:none!important;border-radius:0!important}
.cuban-map-pin{position:relative;display:block;width:38px;height:38px;background:#fff;border:2px solid white;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);box-shadow:0 3px 9px #12244940}
.cuban-map-pin .language-flag{display:block;width:34px!important;height:34px!important;max-width:none;transform:rotate(45deg);border-radius:50%;box-shadow:none;overflow:hidden}
.cuban-map-pin b{position:absolute;right:-8px;top:-5px;transform:rotate(45deg);background:#122d65;color:white;border:2px solid white;border-radius:50%;min-width:19px;height:19px;font:700 10px/15px Arial;text-align:center}
.world-map{border-radius:12px;box-shadow:none}.leaflet-tile-pane{filter:saturate(.2) contrast(.9) brightness(1.08)}
.owner-laurel{display:inline-flex;position:relative;vertical-align:middle;margin-left:6px;color:#bb8c2c;align-items:center}.owner-laurel>svg{width:25px;height:25px;filter:drop-shadow(0 0 3px #e0b24e35)}.owner-laurel>span{display:none;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);padding:5px 9px;border-radius:6px;background:var(--white);border:1px solid #b58a3655;font:600 11px Arial;color:#af8122;white-space:nowrap;z-index:1200}.owner-laurel:hover>span,.owner-laurel:focus-visible>span{display:block}.owner-laurel:hover svg{filter:drop-shadow(0 0 4px #edc65d)}
html[data-theme=dark] .owner-laurel{color:#edc977}.poly-link,.poly-link small{color:#e7cb87}.poly-link{animation:gold-breathe 14s ease-in-out infinite}.membership-status{font-size:10px;color:var(--muted);padding:3px 6px;border:1px solid var(--line);border-radius:6px}
@keyframes gold-breathe{0%,75%,100%{text-shadow:none}85%{color:#fff0b8;text-shadow:0 0 12px #efc65b70}}
.havana-settings{padding:24px;margin-bottom:28px}.motion-options{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.motion-demo{margin:12px 0;height:200px}.malecon-hero>i{display:none;position:absolute;pointer-events:none}.classroom-glow{position:relative;z-index:2}
html[data-havana=sea] .havana-waves,html[data-havana=lights] .havana-waves,html[data-havana=city] .havana-waves{display:block;inset:58% -4% -5% 17%;background:repeating-linear-gradient(178deg,transparent 0 12px,#8d85d622 14px,transparent 16px 25px);clip-path:polygon(0 0,100% 0,100% 100%,44% 100%);opacity:.7;animation:sea-drift 7s ease-in-out infinite alternate}
html[data-havana=lights] .havana-lights,html[data-havana=city] .havana-lights{display:block;inset:0;background:radial-gradient(ellipse at 4% 19%,#e6daff50,transparent 1.5%),radial-gradient(ellipse at 10% 43%,#e8d2ff40,transparent 1%),radial-gradient(ellipse at 20% 48%,#b4a8fa38,transparent 2%);animation:city-glow 5s ease-in-out infinite alternate}
html[data-havana=city] .havana-traffic{display:block;left:0;top:55%;width:5px;height:2px;border-radius:50%;background:#ffebb9;box-shadow:5px 0 0 #ffe5a8,0 0 5px #ffcf88;animation:coast-traffic 18s linear infinite}
@keyframes sea-drift{to{transform:translate(1.5%,3px) scaleX(1.025);opacity:.4}}@keyframes city-glow{to{opacity:.45}}@keyframes coast-traffic{0%{transform:translateX(0);opacity:0}10%{opacity:.8}85%{opacity:.3}100%{transform:translateX(330px);opacity:0}}
#chat-typing{height:22px;padding:0 23px;font-size:12px;color:var(--muted)}.chat-message{animation:message-in .15s ease-out}.conversation{min-width:0}.event-image{width:100%;aspect-ratio:16/9;object-fit:contain;height:auto;max-height:none;background:var(--paper)}.event-detail{grid-template-columns:minmax(0,1.4fr) minmax(235px,1fr)}
@keyframes message-in{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:800px){.event-detail{grid-template-columns:1fr}.owner-laurel>svg{width:22px;height:22px}}
@media(prefers-reduced-motion:reduce){.malecon-hero>i,.poly-link,.chat-message{animation:none!important}}

.island-note{display:block;color:#f1f6ff;font-weight:650;text-decoration:none}.island-note:hover,.island-note:focus-visible{color:#fff;text-decoration:underline}
