/* Shared visual direction for the four 2027 invitations. */
body.premium {
  --font-heading: 'Playfair Display', Georgia, serif;
  --bg-primary: #f2ede4;
  --text-primary: #372d26;
  --text-secondary: #6d5c4e;
  --text-muted: #786452;
  --text-accent: #986e4c;
  --accent-color: #986e4c;
  --border-color: #a9815a40;
  --accent-gradient: linear-gradient(110deg, #755238, #a87c56);
  --btn-primary-bg: var(--accent-gradient);
  --btn-primary-text: #fff9ef;
  background-image: radial-gradient(ellipse at 95% 15%,#c5945833,transparent 40%);
}
body.premium.masculino { --bg-primary:#102829; --text-primary:#f0e7d6; --text-secondary:#c1c2b5; --text-muted:#a7b5a9; --text-accent:#dabf87; --accent-color:#dabf87; --border-color:#dabf873b; --bg-secondary:#1c3838; --bg-card:#173132; --bg-glass:#102829ee; --bg-input:#142b2c; --accent-gradient:linear-gradient(120deg,#c9ab72,#f0dcae); --btn-primary-bg:var(--accent-gradient); --btn-primary-text:#162c2c; background-image:radial-gradient(ellipse at 85% 8%,#65795440,transparent 35%); }
body.premium.law.feminino { --bg-primary:#301821; --text-primary:#fff0e5; --text-secondary:#dfc4bd; --text-muted:#c5a7a1; --text-accent:#efc3a1; --accent-color:#efc3a1; --border-color:#e7b8a13b; --accent-gradient:linear-gradient(110deg,#c39073,#f2d5af); --btn-primary-bg:var(--accent-gradient); --btn-primary-text:#321c25; background-image:radial-gradient(ellipse at 85% 8%,#a64d5140,transparent 40%); }
body.premium.law.masculino { --bg-primary:#161815; --bg-secondary:#24251e; --bg-card:#20221c; --bg-glass:#161815ee; --bg-input:#1b1e18; background-image:radial-gradient(ellipse at 85% 8%,#8d73422d,transparent 40%); }
.premium .container {max-width:1400px;padding:0 6%;}
.premium .theme-bar-wrapper {max-width:1230px;top:0;width:88%;}
.premium .theme-bar {padding:22px 0;border:0;border-bottom:1px solid var(--border-color);background:var(--bg-primary);backdrop-filter:blur(20px);}
.premium .top-brand-text {font-size:10px;letter-spacing:3px;}
.premium .theme-audio-toggle {width:38px;height:38px;position:relative;}
.premium .theme-audio-toggle.playing {background:var(--accent-color);color:var(--bg-primary);box-shadow:0 0 0 5px var(--border-color);}
.premium .collection-link {font-size:10px;}
.premium .replay-envelope-btn {padding:8px 0;font-size:10px;}
.premium .editorial-stage {display:grid;grid-template-columns:1.08fr 1fr;grid-template-rows:auto auto auto;column-gap:4%;row-gap:0;align-items:center;text-align:left;min-height:0;padding:144px 0 0;isolation:isolate;}
.stage-grid {position:absolute;inset:90px -2% 80px;z-index:-2;opacity:.23;background-image:linear-gradient(90deg,var(--border-color) 1px,transparent 1px);background-size:20% 100%;mask-image:linear-gradient(transparent,#000 20%,#000 75%,transparent);}
.stage-year {position:absolute;right:-1%;top:60px;font:400 340px/1 var(--font-heading);letter-spacing:-25px;color:transparent;-webkit-text-stroke:1px var(--border-color);z-index:-1;pointer-events:none;}
.hero-copy {grid-column:1;grid-row:1;align-self:end;padding-bottom:30px;}
.premium .edition {font-size:9px;letter-spacing:2.8px;margin:0 0 45px;display:flex;align-items:center;gap:12px;}
.edition>span {width:24px;height:1px;background:var(--accent-color);}
.premium .hero-subtitle {font:10px var(--font-body);letter-spacing:3px;color:var(--text-secondary);margin:0 0 21px;}
.premium .graduate-name {position:relative;font-family:var(--font-heading);font-weight:400;font-size:clamp(64px,7.9vw,113px);line-height:.99;letter-spacing:-5px;margin:0 0 25px;}
.graduate-name>span:first-child {display:block;}
.premium .graduate-name em {display:block;font-weight:400;font-size:.88em;color:var(--text-accent);line-height:1.13;}
.name-star {position:absolute;right:4%;top:-28px;font:28px Georgia;color:var(--accent-color);animation:star-turn 25s linear infinite;}
.graduate-degree {font-size:11px;letter-spacing:1.8px;color:var(--text-secondary);}
.premium .hero-portrait {grid-column:2;grid-row:1/3;position:relative;margin:0;width:100%;height:570px;max-width:none;transform:perspective(1100px) rotateY(var(--tilt,0deg));}
.portrait-window {position:absolute;inset:22px 18px 28px 10px;overflow:hidden;border-radius:250px 250px 4px 4px;background:var(--bg-secondary);box-shadow:0 30px 50px -30px #201407a0;}
.portrait-window img {display:block;width:100%;height:100%;object-fit:cover;object-position:center 31%;filter:saturate(.68) contrast(1.04);transform:scale(1.02);transition:transform 1.5s ease;}
.hero-portrait:hover .portrait-window img {transform:scale(1.06);}
.premium.masculino .portrait-window {border-radius:160px 4px 4px 4px;}
.premium.law.masculino .portrait-window {border-radius:3px;}
.premium.law.feminino .portrait-window {border-radius:250px 250px 80px 4px;}
.architectural-outline {position:absolute;inset:0 0 10px -12px;border:1px solid var(--accent-color);border-radius:270px 270px 0 0;opacity:.7;transform:rotate(-4deg);}
.premium.masculino .architectural-outline {border-radius:180px 0 0;transform:rotate(3deg);}
.premium.law.masculino .architectural-outline {border-radius:0;transform:rotate(3deg);}
.portrait-aura {position:absolute;inset:15% -2% 5%;background:radial-gradient(ellipse,#d3a35555,transparent 70%);filter:blur(35px);}
.photo-light {position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,#fff3 45%,transparent 70%);transform:translateX(-110%);pointer-events:none;}
.premium.invite-revealed .photo-light {animation:photo-sheen 2.5s .5s both;}
.floating-seal {position:absolute;bottom:50px;left:-54px;width:116px;height:116px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:50%;background:var(--bg-primary);border:1px solid var(--accent-color);box-shadow:0 0 0 6px var(--bg-primary),0 0 0 7px var(--border-color);animation:seal-float 7s ease-in-out infinite;}
.floating-seal svg {width:47px;height:47px;stroke:var(--accent-color);stroke-width:1.2;}
.floating-seal>span {font-size:5px;letter-spacing:1px;color:var(--text-accent);}
.portrait-side-note {position:absolute;right:-16px;top:38%;writing-mode:vertical-rl;font-size:7px;letter-spacing:3px;color:var(--text-muted);}
.hero-portrait figcaption {position:absolute;bottom:0;left:18px;font-size:7px;letter-spacing:1px;color:var(--text-muted);}
.hero-portrait figcaption a {color:inherit;}
.hero-caption {grid-column:1;grid-row:2;align-self:start;}
.hero-manifesto {font:22px/1.7 var(--font-heading);color:var(--text-primary);}
.hero-manifesto>span {font:12px/1.8 var(--font-body);display:block;max-width:355px;color:var(--text-secondary);margin-top:3px;}
.premium .hero-actions {gap:26px;flex-wrap:wrap;margin:28px 0 15px;}
.premium .btn {border-radius:3px;min-height:44px;font-weight:500;}
.premium .btn-primary {position:relative;overflow:hidden;padding:17px 24px;font-size:11px;}
.premium .btn-primary>span {font-size:20px;margin-left:20px;font-weight:400;}
.premium .btn-primary:after {content:'';position:absolute;inset:-80%;background:linear-gradient(110deg,transparent 40%,#fff4 50%,transparent 60%);transform:translateX(-60%);transition:transform .7s;}
.premium .btn-primary:hover:after {transform:translateX(60%);}
.premium .text-link {font-size:10px;padding:12px 0;border-bottom:1px solid var(--border-color);}
.premium .text-link span {margin-left:10px;}
.premium .hero-bottom {grid-row:3;grid-column:1/-1;margin-top:44px;padding:24px 0;align-items:center;font-size:8px;letter-spacing:2px;gap:20px;}
.hero-bottom b {font-weight:500;color:var(--text-accent);margin-left:10px;}
.scroll-cue {color:var(--text-secondary);text-decoration:none;display:flex;align-items:center;gap:15px;}
.scroll-cue>span {font-size:20px;border:1px solid var(--border-color);width:32px;height:40px;display:grid;place-items:center;border-radius:20px;}
.edition-number {color:var(--text-muted);}
.premium .edition-switch {margin:15px 0 10px;}
.premium .sample-note {font-size:9px;line-height:1.8;margin:0 auto 65px;max-width:650px;}
.premium .countdown-section {padding:10px 0 30px;}
.countdown-intro {text-align:center;font:italic 26px/1.4 var(--font-heading);margin-bottom:24px;color:var(--text-accent);}
.premium .countdown-box {background:transparent;border:1px solid var(--border-color);padding:32px;border-radius:3px;}
.premium .countdown-card {border:0;border-right:1px solid var(--border-color);background:transparent;padding:14px;box-shadow:none;}
.premium .countdown-card:last-child {border-right:0;}
.premium .countdown-number {font:400 58px/1.2 var(--font-heading);}
.premium .countdown-label {font-size:9px;letter-spacing:3px;}
.premium .countdown-tab {font-size:10px;border:0;border-radius:2px;padding:9px 16px;color:var(--text-secondary);}
.premium .countdown-tab.active {background:var(--accent-color);color:var(--bg-primary);}
.premium section {padding:60px 0;}
.premium .section-header {margin-bottom:35px;}
.premium .section-tag {font-size:9px;font-weight:500;letter-spacing:4px;}
.premium .section-title {font-size:clamp(28px,3.4vw,45px);line-height:1.25;letter-spacing:-1px;}
.premium .section-subtitle {font-size:12px;line-height:1.9;max-width:570px;margin:16px auto 0;}
.premium .events-grid {gap:20px;}
.premium .event-card {padding:27px 24px;background:var(--bg-card);border:1px solid var(--border-color);border-top:2px solid var(--accent-color);border-radius:3px;box-shadow:none;transition:transform .4s,box-shadow .4s;}
.premium .event-card:hover {transform:translateY(-7px);box-shadow:0 20px 30px -20px #0006;}
.premium .event-badge {font-size:8px;border-radius:1px;letter-spacing:1px;}
.premium .event-day {font:64px/1 var(--font-heading);}
.premium .event-title {font:25px/1.25 var(--font-heading);}
.premium .event-details li {font-size:11px;}
.premium .event-year {font-size:9px;}
.premium .event-month {font-size:14px;}
.premium .event-actions {padding-top:22px;border-top:1px solid var(--border-color);}
.premium .event-actions .btn {font-size:10px;padding:12px 10px;}
.premium .dresscode-card {padding:25px;background:transparent;border:1px solid var(--border-color);border-radius:3px;}
.premium .dresscode-title {font:22px var(--font-heading);}
.premium .dresscode-desc {font-size:11px;line-height:1.9;}
.premium .dresscode-type {font-size:11px;}
.premium .dresscode-icon {border-radius:50%;background:var(--bg-secondary);color:var(--text-accent);}
.premium .rsvp-wrapper {background:var(--bg-card);border-radius:3px;box-shadow:none;}
.premium .rsvp-label {font-size:11px;}
.premium .rsvp-input,.premium .rsvp-select,.premium .rsvp-textarea {border-radius:3px;font-size:12px;min-height:46px;}
.premium .rsvp-check-item {background:var(--bg-input);border-radius:3px;}
.premium .rsvp-check-text {font-size:11px;}
.demo-rsvp-note {font-size:11px;color:var(--text-secondary);background:var(--bg-secondary);padding:15px;border-left:2px solid var(--accent-color);margin-bottom:24px;line-height:1.8;}
.premium .message-card {border-radius:2px;background:var(--bg-card);}
.premium .message-text {font:italic 16px/1.7 var(--font-heading);}
.premium .message-author {font-size:11px;}
.premium footer {padding:40px 0;}
.premium .footer-quote {font:italic 22px/1.6 var(--font-heading);}
.premium .footer-credits {font-size:10px;}
.premium .audio-credit {font-size:9px;line-height:1.7;color:var(--text-muted);margin-top:18px;}
.audio-credit a {color:inherit;}
/* The first scene is a keepsake card with two opening leaves. */
.premium .arch-intro {background:var(--bg-primary);perspective:1400px;transition:opacity .8s,visibility .8s;}
.intro-grain {position:absolute;inset:0;opacity:.4;background:radial-gradient(ellipse at 50% 50%,var(--accent-glow),transparent 65%);pointer-events:none;}
.intro-orbit {position:absolute;width:min(85vw,760px);height:min(85vw,760px);border:1px solid var(--border-color);border-radius:50%;pointer-events:none;}
.orbit-one {transform:rotateX(58deg) rotate(-20deg);animation:orbit-drift 24s linear infinite;}
.orbit-two {width:min(110vw,930px);height:min(110vw,930px);transform:rotateX(48deg) rotate(45deg);opacity:.5;}
.premium .intro-edition {position:relative;font-size:9px;letter-spacing:3px;margin:0 0 26px;}
.intro-edition span {padding:0 12px;color:var(--accent-color);}
.invitation-gate {position:relative;isolation:isolate;width:min(78vw,390px);height:min(58svh,450px);min-height:330px;border-radius:190px 190px 4px 4px;perspective:1200px;box-shadow:0 0 0 12px var(--bg-primary),0 0 0 13px var(--border-color),0 30px 70px -25px #0005;transition:transform 1.6s ease;}
.gate-light {position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse,#fff3d2,#cca76c 40%,var(--bg-primary) 70%);opacity:0;transition:opacity 1s;}
.gate-leaf {position:absolute;width:50%;inset:0 auto 0 0;background:linear-gradient(125deg,var(--bg-card),var(--bg-secondary));border:1px solid var(--border-color);backface-visibility:hidden;transition:transform 1.6s cubic-bezier(.65,0,.2,1);z-index:1;}
.gate-left {border-radius:190px 0 0 4px;transform-origin:left center;}
.gate-right {left:50%;border-radius:0 190px 4px 0;transform-origin:right center;}
.gate-content {position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:28px;transition:opacity .45s,transform .6s;}
.gate-eyebrow {font-size:6px;letter-spacing:1.7px;color:var(--text-muted);margin-bottom:18px;}
.gate-heading {font:400 clamp(35px,4.2vw,49px)/1.08 var(--font-heading);text-align:center;letter-spacing:-1px;}
.gate-heading em {font-weight:400;color:var(--text-accent);}
.open-seal {position:relative;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:var(--accent-gradient);color:var(--btn-primary-text);border:1px solid var(--accent-color);margin:22px 0 16px;cursor:pointer;box-shadow:0 0 0 5px var(--bg-secondary),0 0 0 6px var(--border-color),0 8px 20px #0003;transition:transform .3s;}
.open-seal:hover {transform:scale(1.1) rotate(-5deg);}
.seal-monogram {font:italic 22px var(--font-heading);}
.seal-arrow {position:absolute;font-size:11px;right:7px;bottom:7px;}
.gate-instruction {font-size:7px;letter-spacing:2px;}
.premium .intro-signature {margin-top:26px;font-size:24px;}
.premium .intro-signature small {font-size:6px;letter-spacing:2px;}
.intro-sound-hint {position:relative;font-size:10px;color:var(--text-muted);margin-top:16px;}
.premium .intro-skip {margin-top:10px;padding:10px;min-height:40px;}
.premium .arch-intro.opening .gate-left {transform:rotateY(-110deg);}
.premium .arch-intro.opening .gate-right {transform:rotateY(110deg);}
.premium .arch-intro.opening .gate-content {opacity:0;transform:scale(.92);pointer-events:none;}
.premium .arch-intro.opening .gate-light {opacity:1;}
.premium .arch-intro.opening .invitation-gate {transform:scale(1.35);}
.premium.invite-revealed .hero-copy {animation:editorial-arrive 1.1s .08s both;}
.premium.invite-revealed .hero-portrait {animation:portrait-arrive 1.4s .1s both;}
.premium.invite-revealed .hero-caption {animation:editorial-arrive 1s .4s both;}
.premium .reveal {transition:opacity .8s,transform .8s;}
@keyframes star-turn {to{transform:rotate(360deg);}}
@keyframes seal-float {50%{transform:translateY(-9px);}}
@keyframes photo-sheen {to{transform:translateX(120%);}}
@keyframes editorial-arrive {from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes portrait-arrive {from{opacity:0;clip-path:inset(15% 0 0);transform:translateY(24px)}to{opacity:1;clip-path:inset(0);transform:none}}
@keyframes orbit-drift {to{transform:rotateX(58deg) rotate(340deg);}}
@media(min-width:1450px){.premium .editorial-stage{padding-top:165px}.premium .hero-portrait{height:650px;}}
@media(max-width:1000px) and (min-width:761px){.premium .graduate-name{font-size:75px;letter-spacing:-4px}.premium .hero-portrait{height:510px}.floating-seal{width:92px;height:92px;left:-25px}.premium .hero-actions{gap:14px}.premium .hero-manifesto{font-size:19px}.premium .events-grid{grid-template-columns:1fr;}.premium .event-card{display:grid;grid-template-columns:1fr 1fr;gap:20px}.event-badge{grid-column:1/-1;justify-self:start}.event-title{grid-column:1}.event-details{grid-column:2;grid-row:2/4}.event-actions{grid-column:1/-1;}}
@media(max-width:760px){
  .premium .theme-bar-wrapper{width:88%;}.premium .theme-bar{padding:14px 0;}.premium .top-brand-text{font-size:8px;letter-spacing:2px;}.premium .collection-link{font-size:9px;margin-right:5px;}.premium .replay-envelope-btn{margin-right:6px;}.premium .replay-envelope-btn span{display:none;}.premium .theme-audio-toggle{width:32px;height:32px;}
  .premium .editorial-stage{grid-template-columns:1fr;padding-top:100px;}.hero-copy{grid-column:1;grid-row:1;padding-bottom:20px;}.premium .edition{font-size:7px;margin-bottom:22px;letter-spacing:2px;}.premium .hero-subtitle{font-size:8px;margin-bottom:10px;letter-spacing:2px;}.premium .graduate-name{font-size:clamp(53px,13.5vw,90px);letter-spacing:-3px;margin-bottom:15px;}.premium .graduate-name>span:first-child{display:inline;}.premium .graduate-name em{font-size:.92em;}.name-star{right:8%;top:18px;font-size:25px;}.graduate-degree{font-size:9px;letter-spacing:1px;}.stage-year{font-size:230px;top:90px;right:0;opacity:.7;}
  .premium .hero-portrait{grid-column:1;grid-row:2;height:440px;width:92%;margin:5px auto 20px;}.portrait-window{inset:16px 8px 25px;}.architectural-outline{inset:0 0 7px;}.floating-seal{width:85px;height:85px;bottom:38px;left:-15px;}.floating-seal svg{width:34px;height:34px;}.floating-seal>span{font-size:4px;}.portrait-side-note{right:-15px;font-size:6px;}.hero-portrait figcaption{left:10px;font-size:6px;letter-spacing:.5px;}.hero-caption{grid-row:3;}.hero-manifesto{font-size:22px;}.hero-manifesto>span{font-size:11px;}.premium .hero-actions{margin:20px 0 0;gap:20px;}.premium .hero-bottom{grid-row:4;margin-top:26px;padding:17px 0;font-size:6px;letter-spacing:1px;gap:10px;}.edition-number{display:none;}.scroll-cue{gap:8px;}.scroll-cue>span{width:25px;height:33px;font-size:15px;}.premium .edition-switch{font-size:9px;gap:10px;}.premium .sample-note{font-size:8px;margin-bottom:38px;}.countdown-intro{font-size:22px;}.premium .countdown-box{padding:20px 12px;}.premium .countdown-number{font-size:39px;}.premium .countdown-grid{gap:0;}.premium .countdown-card{padding:10px 4px;}.premium .countdown-label{font-size:7px;letter-spacing:1px;}.premium .countdown-tab{font-size:8px;padding:9px;}.premium section{padding:35px 0;}.premium .section-subtitle{font-size:11px;}.premium .event-card{padding:25px;}.premium .rsvp-wrapper{padding:25px 20px;}.premium .intro-edition{font-size:7px;letter-spacing:2px;}.gate-heading{font-size:43px;}.invitation-gate{width:min(74vw,340px);height:430px;min-height:0;max-height:55svh;}.gate-eyebrow{font-size:5px;letter-spacing:1px;}.gate-content{padding-top:22px;}.premium .intro-signature{font-size:23px;}.premium .intro-signature small{font-size:5px;}.gate-instruction{font-size:6px;}
}
@media(max-width:375px){.premium .graduate-name{font-size:50px;}.premium .hero-portrait{height:380px;}.premium .hero-actions{gap:12px;}.premium .text-link{font-size:9px;}.premium .btn-primary{padding:14px 18px;}.premium .countdown-tab{font-size:7px;padding:8px 6px;}.gate-heading{font-size:37px;}.premium .intro-edition{font-size:6px;}}
@media(max-height:650px){.invitation-gate{height:340px;max-height:58svh;min-height:0;}.gate-heading{font-size:32px;}.gate-eyebrow{margin-bottom:10px;}.open-seal{width:50px;height:50px;margin:12px 0;}.premium .intro-edition{margin-bottom:18px;}.premium .intro-signature{margin-top:18px;font-size:21px;}.intro-sound-hint{margin-top:10px;}}
@media(prefers-reduced-motion:reduce){.premium *,.premium *:before,.premium *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}.premium .reveal{opacity:1;transform:none;}.premium .hero-portrait{transform:none!important;}}
.premium .theme-audio-toggle{width:auto;min-width:38px;gap:8px;padding:0 13px;border-radius:30px;font:9px var(--font-body);white-space:nowrap;}.music-control-icon{display:flex;align-items:center;}.music-credit{font-size:9px;line-height:1.8;color:var(--text-muted);margin-top:18px;}.music-credit a{color:inherit;}@media(max-width:600px){.premium .theme-audio-toggle{min-width:34px;padding:0 9px;}.music-control-label{display:none;}}
/* Let the floating seal and architectural outlines extend beyond the portrait. */
@keyframes portrait-arrive {from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
