.v2-shell,.v2-panel{max-width:960px;margin:0 auto;padding:20px;color:var(--text);font-family:var(--sans)}
.start-invitation{border-bottom:1px solid var(--line);padding:12px 0;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px}
.start-invitation[hidden]{display:none}
.start-guide article{max-width:700px}
.v2-shell nav{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:4px;scroll-padding-inline:4px}
.v2-shell nav button{flex:0 0 auto;white-space:nowrap}
.v2-shell>h1{margin-top:24px;line-height:1.1}
.v2-calendar .topbar,.v2-calendar .topbar h1{background:transparent;backdrop-filter:none}
/* Readings must never reserve blank space or fade below their AA contrast. */
.v2-calendar :is(.quote-card,.calendar-card){animation:none;opacity:1;transform:none}
.v2-panel article.v2-gift{border:2px solid var(--gold);background:var(--panel-strong)}
.v2-panel :is(h2,h3,h4){font-family:var(--serif);color:var(--gold-soft)}
.v2-panel p{line-height:1.7;white-space:pre-line;overflow-wrap:anywhere}
.v2-panel article{padding:20px;margin:20px 0;border:1px solid var(--line);border-radius:24px;background:var(--panel)}
.v2-panel :is(button,select,input,textarea),.v2-shell button,.v2-calendar-choice button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--gold);border-radius:18px;min-height:44px;padding:10px 14px;max-width:100%}
.v2-panel button,.v2-calendar-choice button{margin:4px}
.v2-panel a{color:var(--gold-soft)}
.v2-panel :is(button,input,textarea,select,a):focus-visible,.v2-shell button:focus-visible,.v2-calendar-choice button:focus-visible{outline:3px solid var(--gold-soft);outline-offset:3px}
.v2-shell [aria-current="page"],.v2-calendar-choice [aria-pressed="true"]{background:var(--panel-strong);box-shadow:inset 0 -3px var(--gold)}
.v2-panel label{display:block;margin:12px 0}
.v2-panel textarea{display:block;width:100%;resize:vertical}
.v2-panel fieldset{min-width:0;border:1px solid var(--line);border-radius:16px;margin:16px 0;padding:10px}
.v2-panel fieldset:has([name="initial-rating"]),.v2-panel fieldset:has([name="reassessment"]){display:flex;gap:4px;flex-wrap:nowrap}
.v2-panel fieldset:has([name="initial-rating"]) label,.v2-panel fieldset:has([name="reassessment"]) label{display:flex;align-items:center;justify-content:center;position:relative;min-width:44px;min-height:44px;margin:0;color:var(--gold-soft)}
.v2-panel input[type="radio"]{appearance:none;position:absolute;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.v2-panel input[type="radio"]:checked{border:3px solid var(--gold-soft);background:transparent}
.v2-panel input[type="radio"]+span{position:relative;pointer-events:none}
.v2-date{display:block!important;text-align:center}
.v2-primary-date{font-family:var(--serif);font-size:clamp(2.5rem,8vw,5rem);line-height:1.15;color:var(--gold-soft);overflow-wrap:anywhere}
.v2-calendar-choice{min-width:0;border:0;padding:0;margin:12px 0}
[hidden]{display:none!important}

.v2-calendar-choice [data-locked]{border-style:dashed}
.v2-calendar-offer{margin:12px 4px 4px;padding:14px 16px;border:1px solid var(--gold);border-radius:18px;background:var(--panel-strong)}
.v2-calendar-offer h3{margin:0 0 6px;font-size:1.05rem}
.v2-calendar-offer p{margin:6px 0}
.v2-calendar-offer h3:focus-visible{outline:3px solid var(--gold-soft);outline-offset:3px}
.v2-calendar-summary{max-width:34rem;margin:8px auto 0}
.v2-calendar-about{text-align:left;max-width:36rem;margin:14px auto 0}
.v2-calendar-about summary{cursor:pointer;text-align:center;color:var(--gold-soft);min-height:44px;padding:10px 0}
.v2-calendar-about h3{font-size:1rem;margin:16px 0 6px;color:var(--gold-soft)}
.v2-calendar-about ul{margin:0;padding-left:1.2em}
.v2-calendar-about li{margin:6px 0;line-height:1.5}
.v2-calendar-about p,.v2-calendar-offer p{line-height:1.5}
.v2-calendar-note{font-size:.92rem}
body>a[href="/apps/pwa/?preview=off"]{display:block;text-align:center;padding:10px 16px;font-size:.9rem;color:var(--gold-soft);text-decoration:none;border-bottom:1px solid var(--gold)}
.v2-calendar-upsell{max-width:36rem;margin:16px auto;text-align:center}
.v2-panel [role="group"] button[aria-pressed="true"]{background:var(--panel-strong);box-shadow:inset 0 -3px var(--gold);border-color:var(--gold-soft);font-weight:650}
.v2-panel [role="group"] button[aria-pressed="true"]::before{content:"✓ "}
.v2-calendar-upsell button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--gold);border-radius:18px;min-height:44px;padding:10px 14px;margin:4px;max-width:100%}
.v2-calendar-upsell button:focus-visible,.v2-calendar-offer .v2-upsell-primary:focus-visible{outline:3px solid var(--gold-soft);outline-offset:3px}
.v2-calendar-offer .v2-upsell-primary,.v2-map-view .v2-upsell-primary{display:inline-block;background:#d9b25a;color:#1b1406;border:1px solid #d9b25a;border-radius:18px;font-weight:650;text-decoration:none;min-height:44px;padding:10px 18px;margin:4px;max-width:100%}
.v2-panel fieldset label:has(input[type="radio"]:checked){background:var(--panel-strong);box-shadow:inset 0 -3px var(--gold);border-radius:18px;font-weight:650}
.v2-for-you{margin:16px 0;padding:16px 18px;border:1px solid var(--gold);border-radius:18px;background:var(--panel-strong)}
.v2-for-you h3{margin:0 0 8px;color:var(--gold-soft);font-size:1.05rem}
.v2-for-you-reflection{font-family:var(--serif);font-size:1.12rem;line-height:1.55}
.v2-for-you [data-for-you-story],.v2-for-you [data-for-you-song]{margin-top:14px;padding-top:12px;border-top:1px solid var(--gold)}
.v2-for-you-label{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-soft);margin:0}
.v2-for-you-title{font-weight:650;margin:4px 0}
.v2-for-you a{color:var(--gold-soft)}
.v2-for-you [data-for-you-listen]{display:inline-block;min-height:44px;padding:10px 0}
.v2-for-you-help{padding:12px 14px;border:1px solid var(--gold-soft);border-radius:14px;margin-bottom:12px}
.v2-for-you-help li{margin:6px 0}
.v2-return-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;margin:10px 0;padding:10px 14px;border:1px solid var(--gold);border-radius:18px;background:var(--panel-strong)}
.v2-return-notice[hidden]{display:none}
.v2-return-notice p{margin:0}
.v2-shell nav [data-due]::after{content:"";display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:var(--gold-soft);vertical-align:middle}
.v2-released{color:var(--gold-soft);font-weight:650}
.v2-panel textarea[name="decision"]{display:block;margin-top:10px}
.v2-map-today{margin:16px 0;padding:16px 18px;border:1px solid var(--gold);border-radius:18px;background:var(--panel-strong)}
.v2-map-today h3{margin:0 0 6px;color:var(--gold-soft);font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}
.v2-map-title{font-family:var(--serif);font-size:1.25rem;margin:0 0 4px}
.v2-map-list{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:10px}
.v2-map-list button{width:100%;text-align:left}
.v2-map-locked,.v2-map-soon{margin:4px 0 0;color:var(--muted);font-size:.9rem}
.v2-map-date{color:var(--muted);margin-top:0}
.v2-map-figure{margin:12px 0}
.v2-map-stage{position:relative;overflow:hidden;border-radius:14px;border:1px solid var(--line);touch-action:none;background:var(--bg);
 --map-ocean:#13202a;--map-land:#3a3427;--map-coast:#0d0c0a;--map-label:#f5efe2;--map-halo:#13202a;--map-pin:#f1d88a;--map-sea:#8fb1bd;--map-river:#4d7a8c}
.v2-map-stage svg{display:block;width:100%;height:auto;user-select:none}
.v2-map-stage .place:focus-visible{outline:3px solid var(--gold-soft)}
.v2-map-controls,.v2-map-frames{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.v2-map-frames [aria-pressed="true"]{background:var(--panel-strong);box-shadow:inset 0 -3px var(--gold)}
.v2-map-caption{color:var(--muted);font-size:.92rem;margin:8px 0}
.v2-map-place:not(:empty){margin-top:12px;padding:12px 14px;border:1px solid var(--gold);border-radius:14px}
.v2-map-stories{list-style:none;padding:0;display:grid;gap:12px}
.v2-map-stories p{margin:4px 0}
.v2-map-credit{font-size:.85rem;color:var(--muted);margin-top:18px}
.v2-map-credit a,.v2-map-link{color:var(--gold-soft)}
.v2-map-link{display:inline-block;min-height:44px;padding:10px 0}
.v2-map-view h4{color:var(--gold-soft);margin:20px 0 6px}
.v2-map-view p{line-height:1.6}
:root[data-appearance-theme="light"] .v2-map-stage{--map-ocean:#dfe7e3;--map-land:#e8dfc8;--map-coast:#f5f2e8;--map-label:#273b32;--map-halo:#dfe7e3;--map-pin:#80611e;--map-sea:#365a49;--map-river:#5d8a8f;--map-an:#ffffff;--map-ice:#cfe0e3;--map-ice-line:#7d9aa1}
.v2-map-thumb{display:block;width:100%;height:auto;max-width:480px;margin:12px 0;border-radius:14px;border:1px solid var(--line)}
.v2-map-teaser{font-family:var(--serif);font-size:1.08rem;color:var(--text);border-left:3px solid var(--gold);padding-left:12px}
/* 3.0 reader: «Antes de leer» sits under the title as an invitation, set apart from the story. */
.v2-story-line{font-size:.92rem;color:var(--muted,var(--text));font-style:italic}
.v2-story-before{margin:16px 0 22px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);border-left:3px solid var(--gold);background:color-mix(in srgb,var(--gold) 7%,transparent)}
.v2-story-before h4{margin:0 0 6px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-soft,var(--gold))}
.v2-story-before p{margin:0;font-family:var(--serif);font-size:1.05rem;line-height:1.55;color:var(--text)}
