/* Experiencia de regalo 0.1.3 · Carta de luz, iconos de espera y apertura.
   La lógica de luz y fecha se conserva; drawMoment añade la ilustración del estado. */
:root{--night:#14232b;--deep:#101d25;--paper:#f0e7d7;--cream:#f7eddb;--muted:#b9c2c3;--gold:#d5b079;--line:#b6a88940;--ink:#303c3d;color:var(--cream);background:var(--night);font-family:"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;min-width:0;line-height:1.6}
[hidden]{display:none!important}
a{color:inherit}
button{font:inherit;cursor:pointer}
a,button{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:3px solid #f3ce8a;outline-offset:6px}
.date-card button:focus-visible,.date-card a:focus-visible{outline-color:#795626}
::selection{color:var(--night);background:var(--gold)}
.shell{width:min(1160px,calc(100% - 80px));margin-inline:auto}
.skip{position:absolute;top:1rem;left:-9999px;padding:.75rem 1rem;color:var(--night);background:var(--cream);z-index:20}
.skip:focus{left:1rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;border:0!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.top{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:96px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font:400 27px/1.05 Georgia,"Times New Roman",serif;letter-spacing:-.6px}
.brand-symbol{width:36px;height:36px;color:var(--gold);flex:none}
.brand small{display:block;margin-top:9px;color:var(--muted);font:9px/1.4 "Segoe UI",Arial,sans-serif;letter-spacing:1.8px}
.back-link{font-size:12px;text-decoration:none;border-bottom:1px solid #bd9c664d;padding-block:8px}
.back-link span{color:var(--gold);margin-left:12px;font-size:18px}
.intro{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:45px;padding-block:32px 50px;min-height:664px}
.intro-copy{position:relative;z-index:1;padding-block:36px}
.eyebrow{font-size:10px;font-weight:500;letter-spacing:2.3px;color:var(--gold);margin:0 0 25px}
.intro .eyebrow{display:flex;align-items:center;gap:12px;letter-spacing:1.6px}
.little-line{width:26px;height:1px;background:var(--gold)}
h1,h2,h3,p,figure{margin-top:0}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.055em}
h1{font-size:clamp(64px,6.6vw,88px);line-height:1.02;margin-bottom:25px;max-width:530px}
h1 em{display:block;color:var(--gold);font-weight:400;letter-spacing:-.06em}
.intro-description{color:#c9cecc;font-size:15px;line-height:1.85;max-width:340px;margin-bottom:30px}
.start-link{display:inline-flex;align-items:center;gap:28px;min-height:50px;padding:9px 0;text-decoration:none;border-bottom:1px solid var(--gold);font-size:13px;letter-spacing:.2px;transition:color .2s}
.start-link:hover{color:var(--gold)}
.start-link span{font-size:25px;line-height:1;color:var(--gold)}
.demo-note{font-size:10px;color:#acb6b7;margin:14px 0 0}
.intro-photo{position:relative;margin:0;align-self:stretch;display:flex;align-items:center;min-width:0}
.intro-photo img{display:block;width:100%;height:auto;max-height:626px;object-fit:contain}
.intro-photo figcaption{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#fff1db;font-size:10px;letter-spacing:1px;text-shadow:0 1px 10px #000;background:linear-gradient(transparent,#0e182590);padding:22px 10px 12px}
.intro-photo figcaption em{font:italic 17px Georgia,serif;letter-spacing:0}
.intro-edition{position:absolute;left:0;bottom:13px;color:#98a5a8;font-size:8px;letter-spacing:3px}
.journey{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:28px 0 31px;margin-block:0;border-block:1px solid var(--line)}
.journey li{display:flex;gap:17px;align-items:center;padding-left:14px}
.journey li+li{border-left:1px solid var(--line);padding-left:30px}
.journey li>span{font:italic 28px Georgia,serif;color:var(--gold)}
.journey p{font:19px Georgia,serif;margin:0}
.journey small{display:block;font:11px/1.5 "Segoe UI",Arial,sans-serif;color:var(--muted);margin-top:7px}
.experience{padding-block:100px 95px;background:var(--deep);margin-top:70px;position:relative;border-bottom:1px solid var(--line)}
.experience-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:80px;align-items:center}
h2{font-size:clamp(38px,4vw,53px);line-height:1.12;margin-bottom:24px}
h2 em{color:var(--gold);font-weight:400}
.experience-help{color:var(--muted);max-width:395px;font-size:14px;line-height:1.8;margin-bottom:30px}
.light-stage{--light-x:18%;--light-y:50%;--light-radius:84px;position:relative;height:345px;overflow:hidden;border:1px solid #a78e6040;background:radial-gradient(ellipse at 50% 55%,#24323c,#17242d 57%,#121f27);box-shadow:inset 0 0 80px #080f1440}
.light-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle 155px at var(--light-x) var(--light-y),#bfa77824,transparent);pointer-events:none}
.stage-lit{position:absolute;inset:0;display:grid;place-content:center;margin:0;padding:22px;pointer-events:none;text-align:center;font:italic 400 clamp(35px,3.5vw,47px)/1.12 Georgia,serif;letter-spacing:-1.5px;color:#fff0c9;text-shadow:0 0 15px #eed69935;mask-image:radial-gradient(circle var(--light-radius) at var(--light-x) var(--light-y),#000 0 82%,#000b 90%,transparent 100%);-webkit-mask-image:radial-gradient(circle var(--light-radius) at var(--light-x) var(--light-y),#000 0 82%,#000b 90%,transparent 100%)}
.light-orb{position:absolute;left:var(--light-x);top:var(--light-y);width:calc(var(--light-radius) * 2);height:calc(var(--light-radius) * 2);transform:translate(-50%,-50%);border-radius:50%;border:1px solid #e2c89f9c;background:radial-gradient(circle at 30% 28%,#eadcb72b,transparent 64%);box-shadow:inset 0 0 22px #eadbc52b,0 0 45px #e6c5891a;cursor:grab;touch-action:none;z-index:1}
.light-orb:active{cursor:grabbing}
.light-orb:focus-visible{outline-offset:-5px}
.stage-corner{position:absolute;width:15px;height:15px;border-color:#b7a27980;border-style:solid;pointer-events:none}
.corner-a{top:13px;left:13px;border-width:1px 0 0 1px}.corner-b{bottom:13px;right:13px;border-width:0 1px 1px 0}
.stage-caption{position:absolute;bottom:19px;left:20px;right:20px;text-align:center;pointer-events:none;font-size:8px;letter-spacing:2.4px;color:#a0abae}
.stage-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}
.stage-tools p{font-size:10px;color:var(--muted);margin:0;line-height:1.6}
.motion-button{background:transparent;border:0;border-bottom:1px solid #bca17180;border-radius:0;color:var(--cream);font-size:11px;padding:8px 0;min-height:44px}
.date-card{position:relative;color:var(--ink);background:var(--paper);padding:38px 30px 26px;box-shadow:8px 9px 0 #ccaf7a16;transform:rotate(1.3deg);border:1px solid #d6cbb7}
.date-card:before{content:"";position:absolute;inset:8px;border:1px solid #a5927140;pointer-events:none}
.date-card>*{position:relative}
.date-card .eyebrow{color:#736043;letter-spacing:1.6px;font-size:9px;margin:30px 0 20px}
.postmark{position:absolute;right:26px;top:24px;display:flex;align-items:center;gap:9px;color:#7c6848;transform:rotate(-10deg)}
.postmark span{font-size:7px;letter-spacing:2px}.postmark svg{width:34px;height:34px}
.date-card h3{margin:0;font-weight:400}
.date-number{display:block;font:110px/.94 Georgia,serif;letter-spacing:-8px}
.date-month{display:block;font:italic 25px Georgia,serif;margin-top:12px;letter-spacing:-.7px}
.date-time{font-size:10px;color:#68695f;margin:16px 0 24px}
.date-message{font:italic 19px/1.5 Georgia,serif;color:#6d6250;margin-bottom:22px}
.date-divider{display:flex;align-items:center;gap:12px;color:#9b7e4b;margin:20px 0}
.date-divider:before,.date-divider:after{content:"";height:1px;flex:1;background:#b6a58775}
.date-divider span{font-size:15px}
.state-caption{font-size:10px;color:#666759;margin-bottom:10px;line-height:1.6}
.state-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.state-controls button{color:var(--ink);background:#f8f0e2;border:1px solid #9e9889;border-bottom-width:3px;padding:10px 12px;min-height:48px;font-size:12px;font-weight:600;border-radius:0;flex:1;white-space:nowrap}
.state-controls button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink);border-bottom-color:#b68c52}
.state-controls button:hover{box-shadow:0 0 0 2px #87755040}
.moment{display:grid;grid-template-columns:minmax(0,1fr) 88px;column-gap:12px;row-gap:5px;align-content:start;padding-top:12px;padding-bottom:16px;min-height:158px}
.moment-icon{grid-column:2;grid-row:1;display:block;width:88px;height:88px;object-fit:contain;animation:moment-appear .2s ease-out}
.moment strong{grid-column:1;grid-row:1;align-self:center;font:18px/1.35 Georgia,serif}
.moment span{grid-column:1/-1;font-size:11px;color:#64675d;line-height:1.6}
@keyframes moment-appear{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.letter-link{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:underline;text-decoration-color:#a79069;text-underline-offset:4px;border-top:1px solid #b6a58775;padding:12px 0 2px;font-size:12px;min-height:48px}
.letter-link:hover{color:#795626;text-decoration-thickness:2px}
.gift{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding-block:100px}
.gift-copy>p:not(.eyebrow):not(.gift-signature){max-width:390px;color:var(--muted);font-size:14px;line-height:1.85}
.gift-copy .gift-signature{font:20px/1.5 Georgia,serif;color:var(--cream);margin:32px 0 0}
.gift-signature em{color:var(--gold)}
.gift-result{min-width:0}
.gift-placeholder{border:1px solid #c3a77675;outline:1px solid #c3a77640;outline-offset:-12px;padding:42px 25px;min-height:376px;text-align:center;background:#182830;display:flex;flex-direction:column;justify-content:center;align-items:center}
.envelope-drawing{width:195px;max-width:100%;color:var(--gold);stroke:currentColor;stroke-width:1.1;margin-bottom:29px}
.gift-placeholder p{font:22px Georgia,serif;margin-bottom:10px}
.gift-placeholder>span{font-size:11px;color:var(--muted);max-width:240px}
.gift-card{min-height:400px;background:var(--paper);color:var(--ink);text-align:center;border:1px solid #c8b897;padding:35px 24px 25px;position:relative;box-shadow:8px 9px 0 #ccaf7a16;display:flex;flex-direction:column;align-items:center}
.gift-card:before{content:"";position:absolute;inset:10px;border:1px solid #b9a78380;pointer-events:none}
.gift-card-eyebrow{font-size:8px;letter-spacing:2px;color:#796344}
.coffee-mark{width:50px;height:42px;stroke:#9a734a;stroke-width:1.6;margin:23px 0 20px}
.gift-card strong{font:400 39px/1.13 Georgia,serif;letter-spacing:-1.5px}
.gift-card strong em{color:#8e653c;font-weight:400}
.gift-card small{font-size:11px;line-height:1.65;margin-top:20px;max-width:230px;color:#64685f}
.card-footnote{font-size:9px;margin-top:28px;color:#746e60}
.closing{border-block:1px solid var(--line);padding-block:42px;text-align:center}
.closing-star{font-size:29px;color:var(--gold)}
.closing p{font:28px/1.35 Georgia,serif;letter-spacing:-.6px;margin:17px 0 20px}
.closing p em{color:var(--gold)}
.closing a{display:inline-block;padding:10px 0;min-height:44px;font-size:11px;text-decoration:none;border-bottom:1px solid #b89d7170}
.closing a span{margin-left:15px}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 25px;align-items:center;padding-block:30px 28px;color:#9caeb2;font-size:9px}
footer p{margin:0}footer a{text-underline-offset:3px;padding-block:10px}
/* Los detalles de la muestra también deben poder leerse con comodidad. */
.demo-note,.intro-photo figcaption,.journey small,.stage-tools p,.motion-button,.date-time,.state-caption,.letter-link{font-size:12px}
.state-controls button{font-size:12px}
.moment span,.gift-placeholder>span,.gift-card small{font-size:13px}
.card-footnote{font-size:11px}
footer{font-size:11px}
@media(min-width:1500px){.intro-photo{max-width:470px;justify-self:end}.intro{gap:80px}}
@media(max-width:1000px){.shell{width:calc(100% - 56px)}.intro{gap:22px;min-height:0;padding-block:30px 44px}h1{font-size:64px}.experience-grid{gap:38px}.date-card{padding:30px 23px 20px}.gift{gap:45px}.journey{gap:16px}.journey li+li{padding-left:20px}.journey p{font-size:17px}.journey small{font-size:10px}}
@media(max-width:720px){.shell{width:calc(100% - 40px)}.top{min-height:84px}.brand{font-size:24px;gap:10px}.brand-symbol{width:30px;height:30px}.brand small{font-size:7px;letter-spacing:1.2px}.back-link{font-size:10px;max-width:100px;text-align:right;line-height:1.6}.back-link span{margin-left:4px}.intro{grid-template-columns:1fr;gap:26px;padding-block:36px 36px}.intro-copy{padding:0}.intro .eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:23px}h1{font-size:clamp(58px,10.5vw,76px);max-width:530px;margin-bottom:23px}.intro-description{font-size:14px;line-height:1.8;margin-bottom:23px}.start-link{font-size:12px;gap:36px}.demo-note{font-size:9px}.intro-photo{width:min(100%,440px);justify-self:center;align-self:auto}.intro-photo img{max-height:none}.intro-photo figcaption{bottom:10px}.intro-edition{display:none}.journey{grid-template-columns:1fr;gap:0;padding-block:12px}.journey li,.journey li+li{border-left:0;padding:14px 0;gap:22px}.journey li+li{border-top:1px solid #b6a88920}.journey p{font-size:18px}.journey small{display:inline;font-size:10px;margin:0 0 0 10px}.journey li>span{font-size:24px}.experience{margin-top:40px;padding-block:55px 60px}.experience-grid,.gift{grid-template-columns:1fr;gap:45px}.experience .eyebrow,.gift .eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:22px}h2{font-size:40px}.experience-help{font-size:13px}.light-stage{height:320px;--light-radius:69px}.stage-lit{font-size:35px}.date-card{width:min(100% - 10px,430px);justify-self:center;padding:37px 29px 26px}.date-number{font-size:100px}.date-card .eyebrow{font-size:9px}.state-controls button{font-size:11px}.gift{padding-block:65px}.gift-copy>p:not(.eyebrow):not(.gift-signature){font-size:13px}.gift-copy .gift-signature{font-size:20px}.gift-placeholder{min-height:320px}.gift-card strong{font-size:37px}.closing{padding-block:35px}.closing p{font-size:26px}footer{flex-direction:column;gap:6px;text-align:center;padding-block:25px}}
@media(max-width:380px){.shell{width:calc(100% - 32px)}.journey small{display:block;margin:6px 0 0}.stage-lit{font-size:30px}.date-card{padding:34px 20px 24px}.brand{font-size:21px}.brand-symbol{width:24px;height:24px}.back-link{max-width:85px}.top{gap:12px}}
@media(max-width:720px){.demo-note,.journey small,.state-controls button{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:520px){.top{flex-wrap:wrap;align-items:flex-start;gap:4px 0;padding-block:13px}.brand{flex:1 1 100%;min-width:0;align-items:flex-start}.brand>span{min-width:0}.back-link{margin-left:40px;max-width:none;padding-block:4px}}
