/* Bússola: passagem e correspondência. Sem bibliotecas ou vídeo decorativo. */
.portal-screen{position:relative;isolation:isolate;}
.portal-screen .big,.carta-entrada h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.035em;line-height:1.12;font-size:clamp(34px,6vw,48px);}
.portal-screen .eye{letter-spacing:.24em;font-size:10px;}
.portal-screen .sub{font-size:16px;line-height:1.75;max-width:39ch;margin-inline:auto;}
.portal-scene{position:relative;width:min(100%,370px);height:310px;margin:16px auto 8px;perspective:650px;contain:layout;}
.portal-scene canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.portal-halo{position:absolute;inset:30px 36px 0;background:radial-gradient(ellipse at 50% 55%,#bc812330,transparent 68%);filter:blur(15px);}
.portal-arch{position:absolute;width:172px;height:250px;left:50%;top:20px;transform:translateX(-50%);border:1px solid #cba45a8c;border-radius:100px 100px 3px 3px;box-shadow:0 0 0 7px #151310,0 0 0 8px #b98f4538,0 0 0 19px #151310,0 0 0 20px #b98f4526,0 0 45px #d9a95725,inset 0 0 45px #d9a95718;overflow:hidden;background:radial-gradient(ellipse at 50% 85%,#f1ce8140,transparent 65%),#0d0e10;}
.portal-arch::before{content:'';position:absolute;inset:-60%;background:conic-gradient(from 30deg,transparent,#dec29118,transparent 35%,#d8b57516,transparent 70%);animation:portal-orbit 24s linear infinite;}
.portal-door{position:absolute;inset:0;border:1px solid #dfbb7059;border-radius:inherit;background:linear-gradient(90deg,#262016,#100f0e 47%,#e5bd78 50%,#100f0e 53%,#262016);transform-origin:left center;transition:transform 1.1s cubic-bezier(.2,.7,.3,1),opacity .9s;box-shadow:inset 0 0 30px #000;}
.portal-door::after{content:'✧';position:absolute;left:0;right:0;top:40%;font-size:42px;color:#d8b575;text-shadow:0 0 25px #e9c67b;}
.portal-floor{position:absolute;width:240px;height:70px;left:50%;bottom:2px;transform:translateX(-50%) rotateX(65deg);border-radius:50%;background:radial-gradient(ellipse,#e9c67b44,transparent 68%);border:1px solid #c6a36025;}
.portal-caption{font-size:9px;letter-spacing:.25em;color:#bca477;text-transform:uppercase;margin:0 auto 20px;}
.portal-screen .go{margin-top:25px;}
.portal-screen.atravessando .portal-door{transform:perspective(500px) rotateY(-102deg);opacity:.05;}
.portal-screen.atravessando .portal-arch{animation:portal-enter 1.2s ease-in forwards;}
.portal-screen.atravessando .portal-halo{background:radial-gradient(ellipse,#f4d49c99,transparent 68%);}
.portal-screen.atravessando .portal-caption{color:#f5dfb8;}
@keyframes portal-orbit{to{transform:rotate(360deg)}}
@keyframes portal-enter{55%{transform:translateX(-50%) scale(1.1);filter:brightness(1.5)}100%{transform:translateX(-50%) scale(1.65);filter:brightness(2);opacity:0}}
.contexto-campo{padding:24px 20px;border:1px solid #b69b6740;border-radius:4px;background:radial-gradient(ellipse at top right,#c9a5680c,transparent 75%);}
.contexto-campo .contexto-intro{font:italic 26px/1.25 Georgia,serif;color:#e1c797;margin:0 0 13px;text-transform:none;letter-spacing:-.02em;}
.contexto-campo .contexto-convite{font-size:15px;line-height:1.7;color:#d5cdbf;margin:0 0 20px;}
.contexto-campo .contexto-convite strong{font-weight:500;color:#f1ddbb;}
.contexto-campo label{font-size:10px;letter-spacing:.14em;}
.contexto-campo textarea{background:#161513;border-color:#8d764548;border-radius:3px;font-family:Georgia,serif;font-size:18px;line-height:1.65;min-height:150px;}
.contexto-campo .hint{font-size:11px;line-height:1.6;}
.carta-entrada{text-align:center;padding:28px 0 20px;}
.carta-entrada .eye{font-size:9px;letter-spacing:.22em;}
.carta-entrada h2{margin:22px 0 15px;color:#f2e8d5;}
.carta-entrada h2 em{color:#d2b17b;}
.carta-entrada p{max-width:32ch;margin:0 auto;color:#bdb5a7;font-size:15px;line-height:1.7;}
.envelope-trigger{position:relative;display:block;width:min(100%,390px);height:245px;margin:45px auto 25px;padding:0;border:0;background:transparent;perspective:900px;cursor:pointer;color:#dec08c;}
.envelope-trigger:focus-visible{outline:2px solid #f0cd84;outline-offset:12px;}
.envelope-corpo{position:absolute;inset:20px 0 0;background:linear-gradient(135deg,#29231a,#171614 65%);border:1px solid #a489534f;box-shadow:0 20px 45px #0008,inset 0 0 0 7px #171614,inset 0 0 0 8px #b7974f26;border-radius:3px;overflow:visible;}
.envelope-papel{position:absolute;inset:32px 20px 15px;background:#e8d9b8;border:1px solid #b59b70;color:#715a33;padding:20px 10px;font:15px Georgia,serif;transition:transform 1s .25s,opacity .8s;}
.envelope-papel span{display:block;margin-bottom:15px;font-size:32px;}
.envelope-frente{position:absolute;inset:0;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);background:linear-gradient(30deg,#252015,#383023 49.7%,#8b744144 50%,#241f17 50.3%);border:1px solid #96784055;}
.envelope-aba{position:absolute;inset:0 0 42%;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(#393123,#241e15);transform-origin:top;transition:transform .85s ease,filter .85s;filter:drop-shadow(0 2px 2px #000);z-index:2;}
.envelope-selo{position:absolute;left:50%;top:46%;width:64px;height:64px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 25%,#e0bd77,#937038 65%,#60471f);border:4px double #c49e5f;box-shadow:0 5px 15px #0009;font:34px Georgia,serif;color:#493719;z-index:3;transition:opacity .45s,transform .65s;}
.envelope-destino{position:absolute;bottom:19px;left:0;right:0;z-index:2;font:10px Georgia,serif;letter-spacing:.13em;text-transform:uppercase;}
.envelope-trigger.abrindo .envelope-aba{transform:rotateX(180deg);z-index:0;filter:brightness(.65);}
.envelope-trigger.abrindo .envelope-selo{opacity:0;transform:translate(-50%,-50%) scale(1.25);}
.envelope-trigger.abrindo .envelope-papel{transform:translateY(-90px);}
.carta-entrada .abrir-label{font-size:11px;color:#dfc79b;letter-spacing:.12em;}
.carta-folha{position:relative;background:#eee3cb;color:#392f23;padding:35px clamp(20px,5vw,45px) 32px;border:1px solid #cdb88d;box-shadow:0 20px 65px #0005;isolation:isolate;}
.carta-folha::before{content:'';position:absolute;inset:9px;border:1px solid #9d81512d;pointer-events:none;z-index:-1;}
.carta-folha::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23957950' filter='url(%23n)' opacity='.4' d='M0 0h160v160H0z'/%3E%3C/svg%3E");z-index:-1;}
.carta-folha .carta-ornamento{text-align:center;color:#907348;font:40px Georgia,serif;margin-bottom:25px;}
.carta-folha #readEye{color:#7f6540;font-size:9px;letter-spacing:.14em;text-align:center;}
.carta-folha #readTitle{font:400 clamp(25px,5vw,35px)/1.2 Georgia,serif;text-align:left;color:#3f3424;margin:24px 0 15px;}
.carta-folha #readTitle em{display:inline;color:#82602d;font:inherit;font-style:italic;}
.carta-folha .house{color:#725e3b;background:transparent;border-color:#b5a17b;font-size:10px;}
.carta-folha .read,.carta-folha .blk{background:none;border:0;padding:0;box-shadow:none;}
.carta-folha .carta p{color:#42382b;font:18px/1.85 Georgia,serif;text-align:left;margin:22px 0;}
.carta-folha .carta p.abertura{font-size:23px;line-height:1.45;color:#564125;}
.carta-folha .carta p.destaque{font:italic 24px/1.5 Georgia,serif;color:#8a642d;border-block:1px solid #b29a6d55;padding:22px 0;margin:30px 0;}
.carta-folha .carta p.selo-parte{font:10px/1.6 monospace;color:#79674b;letter-spacing:.04em;border-color:#b7a27d;}
.carta-folha .carta .aproveitar{border-color:#b7a27d;background:#e2d3b34d;padding:20px 20px 20px 35px;}
.carta-folha .carta .aproveitar li{color:#493a27;font:17px/1.8 Georgia,serif;margin:10px 0;}
.carta-folha .carta .assina,.carta-folha .carta .calc{border-color:#b7a27d;}
.carta-folha .carta .assina span,.carta-folha .carta .calc li,.carta-folha .carta .calc summary,.carta-folha .carta .calc .rodape{color:#6e5b3e;}
.carta-folha .mandala{max-width:250px;margin:24px auto;}
.carta-folha .mandala figcaption{color:#665435;}
.carta-folha .carta p.ressalva{font-size:13px;line-height:1.65;color:#796a53;}
.carta-conteudo[hidden],.carta-entrada[hidden]{display:none!important;}
.carta-conteudo.revelada{animation:carta-surge .85s cubic-bezier(.18,.7,.2,1) both;}
@keyframes carta-surge{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
.scr.on:not(.portal-screen){animation:ritual-step .45s ease both;}
@keyframes ritual-step{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.portal-arch::before,.scr.on,.carta-conteudo.revelada{animation:none!important}.portal-door,.envelope-aba,.envelope-papel,.envelope-selo{transition:none!important}.portal-screen.atravessando .portal-arch{animation:none!important}}
@media(max-width:400px){.portal-scene{height:285px;transform:scale(.94);margin-block:5px}.carta-folha{padding-inline:22px}.envelope-trigger{height:218px}.contexto-campo{padding:22px 16px}}

/* V2: arte gerada uma vez, materialidade do pergaminho e contexto progressivo. */
#desejoOpts[hidden],#contextoEscolhido[hidden],#contextoEscrita[hidden]{display:none!important}
.contexto-eco{font:italic 24px/1.5 Georgia,serif;color:#e6d4b0;margin:28px 0 12px;text-align:left;}
.contexto-trocar{background:none;border:0;border-bottom:1px solid #948268;color:#b5a88f;padding:8px 0;font-size:12px;cursor:pointer;}
.contexto-campo{padding:24px 0;border:0;border-top:1px solid #b69b6733;background:none;}
.contexto-campo .contexto-intro{font-size:23px;margin-bottom:10px;}
.contexto-campo .contexto-convite{font-size:14px;color:#b9b0a1;}
.contexto-contar{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:1px solid #b39a6555;border-radius:5px;color:#e5d1ac;padding:16px 18px;font:16px Georgia,serif;cursor:pointer;}
#contextoEscrita{padding-top:22px;}
.garrafa-trigger{height:auto;aspect-ratio:2/3;width:min(100%,345px);margin:15px auto 14px;overflow:hidden;border-radius:48% 48% 8px 8px;isolation:isolate;}
.garrafa-arte{display:block;width:100%;height:100%;object-fit:contain;transition:transform 1s ease,opacity .8s,filter 1s;mask-image:linear-gradient(transparent,#000 8%,#000 88%,transparent);}
.garrafa-brilho{position:absolute;inset:20% 15%;background:radial-gradient(ellipse,#f6d39b00,transparent 70%);pointer-events:none;transition:background 1s;}
.garrafa-convite{position:absolute;bottom:7%;left:10%;right:10%;padding:15px 12px;border:1px solid #b9955877;border-radius:3px;background:#17130ee8;color:#e8d0a3;font:15px Georgia,serif;box-shadow:0 5px 25px #0008;transition:opacity .4s;}
.garrafa-trigger:hover .garrafa-arte{transform:scale(1.025)}
.garrafa-trigger.abrindo .garrafa-arte{transform:scale(1.1) translateY(20px);opacity:0;filter:brightness(1.7);}
.garrafa-trigger.abrindo .garrafa-convite{opacity:0;}
.garrafa-trigger.abrindo .garrafa-brilho{background:radial-gradient(ellipse,#f6d39b65,transparent 70%);}
.carta-entrada h2{font-size:clamp(30px,5vw,39px);margin-block:15px;}
.carta-folha{background:radial-gradient(ellipse at 0% 30%,#9b663b30,transparent 35%),radial-gradient(ellipse at 100% 75%,#99653326,transparent 38%),linear-gradient(90deg,#c9aa71 0%,#e3c99a 2%,#f1e1bd 8%,#f4e6c9 49.7%,#d9c29a 50%,#f0dfba 50.5%,#e8d2aa 93%,#c6a571 100%);border:0;border-radius:2px;box-shadow:inset 0 0 28px #8f5d3330,0 20px 60px #0008;clip-path:polygon(1% 0,15% .15%,28% 0,42% .2%,58% 0,73% .15%,89% 0,99% .15%,100% 18%,99.5% 35%,100% 54%,99.5% 74%,100% 99.8%,84% 100%,68% 99.8%,51% 100%,35% 99.85%,18% 100%,0 99.8%,.4% 78%,0 58%,.4% 39%,0 20%);}
.carta-folha::before{inset:0;border:0;background:linear-gradient(0deg,transparent 32.9%,#a4824820 33%,#fffae535 33.15%,transparent 33.5%,transparent 66%,#a482481a 66.1%,transparent 66.5%);}
.carta-folha::after{opacity:.25;}
.carta-conteudo.revelada{transform-origin:top center;animation:pergaminho-abre 1.15s cubic-bezier(.15,.65,.25,1) both;}
@keyframes pergaminho-abre{from{opacity:0;clip-path:inset(0 0 94% 0);transform:translateY(25px)}45%{opacity:1}to{opacity:1;clip-path:inset(0);transform:none}}
@media(prefers-reduced-motion:reduce){.garrafa-arte,.garrafa-convite,.garrafa-brilho{transition:none}.carta-conteudo.revelada{animation:none}}
