/* Santuario Vivo: capa visual del diario progresivo */
.sanctuary-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#6f3f3c 0%,#a16059 48%,#c98e80 100%);border-radius:28px;padding:2rem;color:#fffaf5;box-shadow:0 22px 55px rgba(111,63,60,.24);margin-bottom:1.25rem}
.sanctuary-hero::before{content:'';position:absolute;width:280px;height:280px;border-radius:50%;right:-90px;top:-130px;background:radial-gradient(circle,rgba(255,238,207,.34),rgba(255,255,255,0) 70%)}
.sanctuary-hero::after{content:'';position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(180deg,transparent,rgba(75,39,37,.16));pointer-events:none}
.sanctuary-top{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.sanctuary-kicker,.world-kicker{display:block;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#ffe0b7;margin-bottom:.35rem}
.sanctuary-title{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(1.7rem,5vw,2.55rem);line-height:1.05;max-width:460px}
.sanctuary-day{flex:0 0 auto;text-align:center;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);border-radius:20px;padding:.7rem 1rem;backdrop-filter:blur(7px)}
.sanctuary-day strong{display:block;font-family:'Playfair Display',serif;font-size:2.2rem;line-height:1}
.sanctuary-day span{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em}
.week-path{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-top:1.35rem}
.week-node{height:7px;border-radius:99px;background:rgba(255,255,255,.22)}
.week-node.done{background:#ffe1b8;box-shadow:0 0 18px rgba(255,225,184,.42)}
.sanctuary-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;margin-bottom:1.2rem}
.world-card{background:linear-gradient(150deg,rgba(255,253,250,.96),rgba(249,239,230,.88));border:1px solid rgba(161,96,89,.1);border-radius:22px;padding:1.35rem;box-shadow:0 9px 28px var(--shadow)}
.world-card h3{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:500;line-height:1.2;margin-bottom:.35rem}
.world-card p{font-size:.82rem;color:var(--muted);line-height:1.6}
.route-list{display:grid;gap:.58rem;margin-top:1rem}
.route-step{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:.65rem;width:100%;min-height:54px;padding:.55rem .65rem;border:1px solid rgba(161,96,89,.12);border-radius:14px;background:rgba(255,255,255,.55);color:var(--text);font-family:'Montserrat',sans-serif;text-align:left;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}
.route-step:hover{transform:translateX(3px);border-color:var(--pri);background:var(--card)}
.route-step-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--peach-lt);font-size:1rem}
.route-step strong{display:block;font-size:.78rem}
.route-step small{display:block;color:var(--muted);font-size:.68rem;line-height:1.35;margin-top:.08rem}
.route-arrow{color:var(--pri);font-size:1.05rem}
.chinchi-note{position:relative;overflow:hidden;min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;background:#e8d2be}
.chinchi-note img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:42% top;filter:saturate(.84) contrast(.96)}
.chinchi-note::after{content:'';position:absolute;inset:20% 0 0;background:linear-gradient(180deg,transparent,rgba(45,30,25,.82))}
.chinchi-bubble{position:relative;z-index:1;padding:1.1rem;color:#fffaf4}
.chinchi-bubble span{font-size:.65rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ffdca9}
.chinchi-bubble p{font-family:'Playfair Display',serif;font-size:1.05rem;line-height:1.45;color:#fffaf4;margin-top:.25rem}
.history-invite{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1.1rem 1.25rem;margin-bottom:1.25rem;border-radius:18px;border:1px solid rgba(131,109,92,.2);background:var(--gold-bg);color:var(--text);font-family:'Montserrat',sans-serif;text-align:left;cursor:pointer}
.history-invite strong{display:block;font-family:'Playfair Display',serif;font-size:1.18rem}.history-invite span{display:block;color:var(--muted);font-size:.74rem;margin-top:.1rem}.history-invite b{font-size:1.25rem;color:var(--gold)}
.month-banner{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;margin-bottom:1rem;border-radius:16px;background:var(--gold-bg);border:1px solid rgba(131,109,92,.14)}
.month-banner strong{font-family:'Playfair Display',serif;font-size:1.05rem}.month-banner span{font-size:.74rem;color:var(--muted)}
.week-heading{display:flex;align-items:center;gap:.7rem;margin:1.35rem 0 .7rem;color:var(--gold);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.week-heading::after{content:'';height:1px;flex:1;background:rgba(131,109,92,.18)}
.guided-card{background:var(--card);border-radius:18px;margin-bottom:.72rem;border:1px solid rgba(161,96,89,.1);box-shadow:0 5px 18px var(--shadow);overflow:hidden}
.guided-card.locked{opacity:.68;box-shadow:none}.guided-card summary{list-style:none;display:flex;align-items:center;gap:.8rem;min-height:68px;padding:.85rem 1rem;cursor:pointer}.guided-card summary::-webkit-details-marker{display:none}
.guided-card.locked summary{cursor:not-allowed}.guided-day{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:13px;background:var(--peach-lt);font-family:'Playfair Display',serif;color:var(--pri);font-size:1.05rem}.guided-card.locked .guided-day{filter:grayscale(1)}
.guided-summary-copy{min-width:0;flex:1}.guided-summary-copy strong{display:block;font-family:'Playfair Display',serif;font-size:1rem;line-height:1.2}.guided-summary-copy small{display:block;color:var(--muted);font-size:.68rem;margin-top:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guided-state{color:var(--pri);font-size:.72rem;font-weight:700}
.guided-body{padding:0 1rem 1rem;border-top:1px solid rgba(161,96,89,.08)}.guided-prompt{font-family:'Playfair Display',serif;font-size:1.02rem;line-height:1.6;color:var(--text);padding:1rem .15rem .7rem}
.legacy-archive{margin:1.4rem 0;border:1px dashed rgba(131,109,92,.3);border-radius:16px;padding:.3rem .9rem;background:rgba(255,255,255,.2)}.legacy-archive>summary{cursor:pointer;padding:.75rem 0;font-size:.78rem;font-weight:700;color:var(--gold)}
.weekly-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-bottom:1rem}.weekly-step{min-height:52px;border:1px solid rgba(161,96,89,.14);border-radius:12px;background:var(--card);color:var(--text);font-family:'Montserrat',sans-serif;font-size:.68rem;font-weight:700;padding:.45rem;cursor:pointer}.weekly-step.active{background:var(--pri);border-color:var(--pri);color:#fff}.weekly-step.locked{opacity:.46;cursor:not-allowed}
.weekly-guided.locked{display:none}.weekly-guided:not(.active){display:none}.weekly-guided.active{display:block;animation:fadeIn .35s ease}
.affirmation-stage{text-align:center;padding:2rem 1.2rem;background:radial-gradient(circle at 50% 0,rgba(243,199,193,.45),transparent 55%),var(--card);border-radius:22px;border:1px solid rgba(161,96,89,.1);box-shadow:0 10px 30px var(--shadow);margin-bottom:1rem}.affirmation-stage .day-seal{display:inline-flex;padding:.3rem .75rem;border-radius:99px;background:var(--gold-bg);font-size:.68rem;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.09em}.affirmation-copy{font-family:'Playfair Display',serif;font-size:clamp(1.35rem,4vw,1.8rem);line-height:1.45;margin:1rem auto;max-width:560px}.repeat-orbs{display:flex;justify-content:center;gap:.55rem;margin:.8rem}.repeat-orb{width:13px;height:13px;border-radius:50%;background:rgba(161,96,89,.18);border:1px solid rgba(161,96,89,.3)}.repeat-orb.done{background:var(--pri);box-shadow:0 0 0 4px rgba(161,96,89,.09)}
.repeat-btn,.book-btn,.history-btn{min-height:44px;border:0;border-radius:99px;padding:.68rem 1rem;background:var(--pri);color:#fff;font-family:'Montserrat',sans-serif;font-size:.76rem;font-weight:800;cursor:pointer}.repeat-btn:disabled{background:var(--green);cursor:default}
.affirmation-map{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.affirmation-dot{aspect-ratio:1;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.45);border:1px solid rgba(161,96,89,.13);font-family:'Montserrat',sans-serif;font-size:.65rem;color:var(--muted);cursor:pointer}.affirmation-dot.done{background:var(--green);color:#fff}.affirmation-dot.today{border:2px solid var(--pri);color:var(--pri);font-weight:800}.affirmation-dot.locked{opacity:.35;cursor:not-allowed}
.tree-stage{position:relative;overflow:hidden;text-align:center;border-radius:26px;padding:1.4rem;background:linear-gradient(180deg,#f7e8d5,#e8eee0);box-shadow:0 12px 32px var(--shadow);margin-bottom:1rem}.tree-stage::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.7),transparent 18%),linear-gradient(25deg,transparent 47%,rgba(255,255,255,.22) 48%,transparent 51%);pointer-events:none}.tree-svg{position:relative;width:min(100%,360px);height:auto;overflow:visible}.tree-svg .trunk,.tree-svg .branch,.tree-svg .leaf,.tree-svg .fruit,.tree-svg .flower{transform-box:fill-box;transform-origin:center;transition:opacity .7s,transform .7s}.tree-stage[data-stage="seed"] .trunk,.tree-stage[data-stage="seed"] .branch,.tree-stage[data-stage="seed"] .leaf,.tree-stage[data-stage="seed"] .flower,.tree-stage[data-stage="seed"] .fruit{opacity:0;transform:scale(.5)}.tree-stage[data-stage="sprout"] .branch,.tree-stage[data-stage="sprout"] .flower,.tree-stage[data-stage="sprout"] .fruit{opacity:0;transform:scale(.5)}.tree-stage[data-stage="young"] .flower,.tree-stage[data-stage="young"] .fruit{opacity:0;transform:scale(.5)}.tree-stage[data-stage="bloom"] .fruit{opacity:0;transform:scale(.5)}
.tree-copy{position:relative}.tree-copy h3{font-family:'Playfair Display',serif;font-size:1.4rem}.tree-copy p{font-size:.78rem;color:#53634d}.tree-days{display:grid;grid-template-columns:repeat(10,1fr);gap:.32rem;margin-top:1rem}.tree-day{aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-size:.58rem;background:rgba(255,255,255,.52);color:#6c7767;border:1px solid rgba(82,122,94,.16)}.tree-day.done{background:var(--green);color:#fff}.tree-day.today{box-shadow:0 0 0 3px rgba(82,122,94,.18)}
.story-shell{position:relative;padding:1.2rem;border-radius:28px;background:linear-gradient(135deg,#7a5140,#a77b5f);box-shadow:0 24px 55px rgba(75,47,36,.25)}.story-book{position:relative;min-height:590px;border-radius:20px;background:linear-gradient(90deg,#f7ecd8 0%,#fffaf0 48%,#eadac0 50%,#fffaf0 52%,#f7ecd8 100%);box-shadow:inset 0 0 38px rgba(96,67,45,.12),0 8px 18px rgba(58,34,24,.22);padding:2rem 2.2rem;overflow:hidden}.story-book::before{content:'';position:absolute;inset:0;opacity:.35;background-image:radial-gradient(rgba(109,78,54,.16) .6px,transparent .7px);background-size:5px 5px;pointer-events:none}.story-page{position:relative;z-index:1;max-width:560px;margin:0 auto;animation:pageArrive .45s ease}.story-page.turn-next{animation:pageNext .42s ease}.story-page.turn-prev{animation:pagePrev .42s ease}@keyframes pageNext{from{opacity:.2;transform:perspective(900px) rotateY(-8deg) translateX(16px)}to{opacity:1;transform:none}}@keyframes pagePrev{from{opacity:.2;transform:perspective(900px) rotateY(8deg) translateX(-16px)}to{opacity:1;transform:none}}@keyframes pageArrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.story-eyebrow{text-align:center;font-size:.68rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#9a6953}.story-title{text-align:center;font-family:'Playfair Display',serif;font-size:clamp(1.65rem,5vw,2.35rem);line-height:1.1;margin:.45rem 0 .75rem;color:#50382f}.story-prompt{text-align:center;font-family:'Playfair Display',serif;font-style:italic;color:#735c50;font-size:.95rem;line-height:1.65;margin-bottom:1rem}.story-suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:.8rem}.story-suggestion{border:1px solid rgba(122,81,64,.23);border-radius:99px;background:rgba(255,255,255,.45);color:#6b4d40;padding:.38rem .7rem;font-family:'Montserrat',sans-serif;font-size:.66rem;cursor:pointer}.story-editor{min-height:260px!important;background:rgba(255,255,255,.36)!important;border-color:rgba(122,81,64,.17)!important;color:#46342d!important;font-family:'Playfair Display',serif!important;font-size:1rem!important;line-height:1.85!important}.story-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.8rem}.story-count{font-size:.68rem;color:#81685a}.book-btn.secondary{background:transparent;color:#6e4d3f;border:1px solid rgba(110,77,63,.28)}
.history-dialog{display:none;position:fixed;inset:0;z-index:2600;background:rgba(34,25,21,.68);backdrop-filter:blur(8px);padding:1rem;overflow:auto}.history-dialog.open{display:grid;place-items:center;animation:fadeIn .22s ease}.history-panel{width:min(920px,100%);max-height:calc(100vh - 2rem);overflow:auto;background:var(--bg);border-radius:26px;padding:1.3rem;box-shadow:0 28px 80px rgba(0,0,0,.35)}.history-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.history-head h2{font-family:'Playfair Display',serif;font-size:1.65rem}.history-close{width:44px;height:44px;border-radius:50%;border:1px solid rgba(161,96,89,.2);background:var(--card);color:var(--text);font-size:1.2rem;cursor:pointer}.history-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:1rem}.history-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem;align-content:start}.history-day{aspect-ratio:1;border-radius:12px;border:1px solid rgba(161,96,89,.13);background:var(--card);color:var(--text);font-family:'Montserrat',sans-serif;font-size:.7rem;cursor:pointer}.history-day.has-entry::after{content:'';display:block;width:5px;height:5px;border-radius:50%;margin:3px auto 0;background:var(--green)}.history-day.active{background:var(--pri);color:#fff}.history-day:disabled{opacity:.3;cursor:not-allowed}.history-detail{min-height:340px;background:var(--card);border-radius:18px;padding:1.2rem}.history-detail h3{font-family:'Playfair Display',serif;font-size:1.35rem}.history-date{font-size:.7rem;color:var(--muted);margin-bottom:1rem}.history-section{padding:.8rem 0;border-top:1px solid rgba(161,96,89,.1)}.history-section h4{font-size:.7rem;color:var(--gold);text-transform:uppercase;letter-spacing:.1em}.history-section p{font-family:'Playfair Display',serif;font-size:.92rem;line-height:1.65;margin-top:.35rem;white-space:pre-wrap}.history-empty{display:grid;place-items:center;min-height:250px;text-align:center;color:var(--muted);font-size:.82rem}
body.dark .world-card,body.dark .guided-card,body.dark .history-invite{background:var(--card)}body.dark .chinchi-note{background:#392b25}body.dark .tree-stage{background:linear-gradient(180deg,#2c322b,#263022)}body.dark .story-shell{background:#4e352c}
@media(max-width:720px){.sanctuary-grid,.history-layout{grid-template-columns:1fr}.chinchi-note{min-height:290px}.weekly-stepper{grid-template-columns:repeat(2,1fr)}.story-shell{padding:.55rem}.story-book{min-height:600px;padding:1.4rem 1rem;background:linear-gradient(90deg,#f5e7ce,#fffaf0 50%,#f5e7ce)}.history-panel{padding:1rem}.tree-days{grid-template-columns:repeat(6,1fr)}}
@media(max-width:480px){.sanctuary-hero{padding:1.35rem}.sanctuary-top{align-items:flex-start}.sanctuary-day{padding:.55rem .7rem}.sanctuary-grid{gap:.8rem}.world-card{padding:1.05rem}.story-nav{flex-wrap:wrap}.book-btn{flex:1}.history-calendar{gap:.25rem}.history-day{border-radius:9px}.guided-card summary{padding:.75rem}.tree-days{grid-template-columns:repeat(5,1fr)}}
@media(max-width:600px){.nav-inner{scroll-snap-type:x proximity;padding-inline:.25rem}.nav-btn{scroll-snap-align:start}.g-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.history-invite{min-height:72px}.route-step,.weekly-step,.story-suggestion,.history-day{touch-action:manipulation}}
.story-title:focus{outline:none}.route-step:focus-visible,.history-invite:focus-visible,.guided-card summary:focus-visible,.weekly-step:focus-visible,.repeat-btn:focus-visible,.book-btn:focus-visible,.story-suggestion:focus-visible,.history-day:focus-visible,.history-close:focus-visible{outline:3px solid var(--pri);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.story-page,.story-page.turn-next,.story-page.turn-prev{animation:none!important}.tree-svg *{transition:none!important}}
