@font-face{font-family:Cinzel;src:url('./assets/cinzel-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Cinzel;src:url('./assets/cinzel-semibold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Fell;src:url('./assets/im-fell-english-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
:root{color-scheme:dark;--gold:#e3c68e;--gold-dim:#b6a17a;--cream:#f0e6d1;--ink:#0b1522;--line:rgba(210,177,113,.29);font-family:Cinzel,Georgia,serif;color:var(--cream);background:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:280px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button{color:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}button{cursor:pointer}button[hidden],[hidden]{display:none!important}::selection{background:#987744;color:white}
.skip-link{position:fixed;z-index:10;top:12px;left:12px;transform:translateY(-160%);background:var(--ink);padding:12px}.skip-link:focus{transform:none}
.world,.world-art,.world-veil,.world-mist,.embers{position:fixed;inset:0;pointer-events:none}.world{overflow:hidden;z-index:-2;background:#101b29}.world-art{background:url('./assets/nordrassil-classic.webp') center center/cover no-repeat;animation:world-awakens 28s ease-in-out infinite alternate;opacity:1}.world-veil{background:radial-gradient(ellipse 42% 58% at 50% 46%,rgba(6,16,29,.46),rgba(6,16,29,.16) 62%,transparent 100%),linear-gradient(180deg,rgba(7,16,29,.2),rgba(7,16,29,.12) 30%,rgba(7,16,29,.3) 60%,rgba(7,16,29,.58) 100%)}.world-mist{inset:40% -25% -10%;background:radial-gradient(ellipse at 28% 65%,rgba(85,126,140,.09),transparent 46%),radial-gradient(ellipse at 70% 80%,rgba(78,117,137,.09),transparent 45%);animation:mist-drift 22s ease-in-out infinite alternate}.page-frame{position:fixed;inset:17px;pointer-events:none;border:1px solid rgba(198,167,107,.17);z-index:2}.page-frame:before,.page-frame:after{content:'';position:absolute;width:7px;height:7px;border:1px solid #9f8960;transform:rotate(45deg);background:#0a151d;top:-4px}.page-frame:before{left:-4px}.page-frame:after{right:-4px}
.page{min-height:100svh;max-width:1920px;margin:auto;display:flex;flex-direction:column;padding:0 5.2%}.masthead{display:flex;justify-content:space-between;align-items:center;min-height:108px;gap:20px}.brand{text-decoration:none;display:flex;gap:13px;align-items:center;font-size:17px;letter-spacing:.14em;color:#f1dfbd}.brand-mark{width:43px;height:26px;color:var(--gold)}.brand-lan{color:var(--gold);margin-left:4px}.hero{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:43px 0 32px;isolation:isolate}.intro{animation:reveal 1.4s ease both}.eyebrow{display:flex;align-items:center;justify-content:center;gap:17px;font-size:10px;letter-spacing:.34em;margin:0 0 25px;color:#ddcba9}.eyebrow span{width:32px;height:1px;background:linear-gradient(90deg,transparent,#bca375)}.eyebrow span:last-child{transform:rotate(180deg)}h1{font-weight:600;margin:0;line-height:1.08;text-shadow:0 5px 25px #02090e}.title-main{display:block;font-size:clamp(42px,6.3vw,90px);letter-spacing:.065em;color:#efdfbb}.title-lan{color:var(--gold);margin-left:.12em}.title-year{display:flex;align-items:center;justify-content:center;gap:20px;font-size:21px;letter-spacing:.45em;font-weight:400;color:#d9bb80;margin-top:10px;padding-left:.45em}.title-year i{width:44px;height:1px;background:linear-gradient(90deg,transparent,#b79a61)}.title-year i:last-child{transform:rotate(180deg)}.invitation{font:italic 27px/1.4 Fell,Georgia,serif;color:#d7d3c8;margin:19px 0 0;text-shadow:0 2px 12px #000}
.countdown-section{width:min(100%,800px);margin-top:55px;outline:none;animation:reveal 1.6s .15s ease both}.countdown-section h2{font-weight:400;font-size:10px;letter-spacing:.29em;color:#e1d4b5;margin:0 0 6px}.countdown{display:grid;grid-template-columns:1fr 18px 1fr 18px 1fr 18px 1fr;align-items:start;margin:0 auto;max-width:725px;padding:0 5px}.time-unit{display:flex;flex-direction:column;align-items:center;min-width:0}.digits{font-size:clamp(58px,8.8vw,116px);font-weight:400;line-height:1.2;letter-spacing:-.045em;font-variant-numeric:lining-nums tabular-nums;color:#f0e3c5;text-shadow:0 2px 0 #9f8551,0 5px 25px rgba(0,0,0,.75);min-width:2ch}.seconds{color:#ddc591;text-shadow:0 2px 0 #6b5734,0 5px 25px rgba(0,0,0,.75)}.unit-label{font-size:9px;letter-spacing:.25em;margin-top:5px;color:#e0d3b4}.time-divider{font:400 49px/2.4 Georgia,serif;color:#9c865b;opacity:.6}.countdown-rule{height:1px;background:linear-gradient(90deg,transparent,var(--line) 20%,var(--line) 80%,transparent);position:relative;margin:32px auto 24px;max-width:590px}.countdown-rule span{font:10px/1 Georgia,serif;position:absolute;top:-5px;left:calc(50% - 12px);width:24px;background:#17323a;color:#d9ba7c}.event-date{font-size:14px;letter-spacing:.12em;color:#e9d8b7;margin:0}.date-dot{padding:0 13px;color:#c3a06b}.timezone{font-size:9px;letter-spacing:.13em;color:#d6d3c5;margin:9px 0 0}.timezone span{color:#c8baa0}.actions{display:flex;align-items:center;justify-content:center;gap:27px;margin-top:29px}.calendar-button,.share-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:47px;text-decoration:none;font-size:9px;letter-spacing:.13em}.calendar-button{position:relative;border:1px solid #a28a59;background:linear-gradient(180deg,rgba(83,104,92,.46),rgba(13,45,54,.65));box-shadow:inset 0 0 0 3px rgba(8,15,20,.75),0 4px 18px #0003;padding:0 24px;color:#f0dbaf;transition:background .25s,box-shadow .25s,border-color .25s}.calendar-button:before,.calendar-button:after{position:absolute;content:'';width:4px;height:4px;background:#cfb77f;transform:rotate(45deg);top:calc(50% - 2px)}.calendar-button:before{left:-3px}.calendar-button:after{right:-3px}.calendar-button:hover{border-color:#ebcf8f;background:linear-gradient(180deg,rgba(112,133,108,.58),rgba(22,67,73,.72));box-shadow:inset 0 0 0 3px rgba(8,15,20,.75),0 0 25px #bd9a4518}.calendar-button svg,.share-button svg{width:16px;height:16px;flex:none}.share-button{background:none;border:0;padding:5px 0;color:#e0d3b8;transition:color .2s}.share-button:hover{color:#f4dfac}.share-status{height:16px;margin:10px 0 -26px;font:12px/16px Georgia,serif;color:#ddcca8}.arrival-status:empty{display:none}.arrival-status{font:13px Georgia,serif;color:#d5c5a4}.arrival{font:italic clamp(30px,6vw,55px)/1.5 Fell,Georgia,serif;color:var(--gold);margin:15px 0}.no-script{font:16px/1.6 Georgia,serif;color:#cfc7b3}.closing{font:italic 21px/1.4 Fell,Georgia,serif;color:#ddd1b9;margin:47px 0 5px}.closing span{color:#d8c7a8}.footer{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;min-height:86px;gap:18px;border-top:1px solid rgba(195,164,103,.13);font-size:8px;letter-spacing:.19em;color:#d8c9aa}
.embers i{position:absolute;left:12%;bottom:-10%;width:2px;height:2px;background:#e9c27b;box-shadow:0 0 7px 2px #e7a44344;border-radius:50%;animation:ember-rise 17s linear infinite;opacity:0}.embers i:nth-child(2){left:22%;animation-delay:-5s;animation-duration:22s}.embers i:nth-child(3){left:35%;animation-delay:-11s}.embers i:nth-child(4){left:43%;animation-delay:-8s;animation-duration:24s}.embers i:nth-child(5){left:54%;animation-delay:-3s}.embers i:nth-child(6){left:66%;animation-delay:-13s;animation-duration:21s}.embers i:nth-child(7){left:79%;animation-delay:-6s}.embers i:nth-child(8){left:88%;animation-delay:-15s;animation-duration:25s}.embers i:nth-child(9){left:8%;animation-delay:-9s;animation-duration:26s}.embers i:nth-child(10){left:29%;animation-delay:-16s;animation-duration:23s}.embers i:nth-child(11){left:72%;animation-delay:-19s;animation-duration:28s}.embers i:nth-child(12){left:94%;animation-delay:-12s;animation-duration:19s}
@keyframes world-awakens{from{transform:scale(1)}to{transform:scale(1.035)}}@keyframes mist-drift{from{transform:translateX(-4%)}to{transform:translateX(4%)}}@keyframes ember-rise{0%{transform:translate(0,0);opacity:0}15%{opacity:.6}80%{opacity:.35}100%{transform:translate(60px,-85vh);opacity:0}}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.page-paused .world-art,.page-paused .world-mist,.page-paused .embers i{animation-play-state:paused}
@media(min-width:1500px) and (min-height:900px){.hero{padding-top:8vh}.countdown-section{margin-top:7vh}.closing{margin-top:6vh}}
@media(min-width:701px) and (max-height:850px){.masthead{min-height:76px}.hero{padding:18px 0}.eyebrow{margin-bottom:16px}.title-main{font-size:clamp(42px,5.4vw,70px)}.title-year{font-size:17px;gap:14px;margin-top:7px}.invitation{font-size:23px;margin-top:12px}.countdown-section{margin-top:26px}.countdown-section h2{margin-bottom:3px}.digits{font-size:88px}.time-divider{font-size:39px}.unit-label{margin-top:2px}.countdown-rule{margin:22px auto 18px}.actions{margin-top:21px}.closing{font-size:20px;margin:26px 0 4px}.footer{min-height:64px}}
@media(max-width:700px){.page{padding:0 28px}.page-frame{inset:10px}.masthead{min-height:86px}.brand{font-size:13px;gap:9px;letter-spacing:.1em}.brand-mark{width:32px}.hero{padding-top:46px;padding-bottom:32px}.world-art{background-image:url('./assets/nordrassil-classic-mobile.webp');background-position:center center}.world-veil{background:radial-gradient(ellipse 70% 55% at 50% 42%,rgba(6,16,29,.42),transparent 100%),linear-gradient(180deg,rgba(7,16,29,.16),rgba(7,16,29,.25) 45%,rgba(7,16,29,.6) 100%)}.eyebrow{font-size:8px;letter-spacing:.23em;gap:12px;margin-bottom:23px}.eyebrow span{width:20px}.title-main{font-size:clamp(32px,8.1vw,56px);letter-spacing:.025em}.title-year{font-size:17px;margin-top:13px}.invitation{font-size:24px;margin-top:19px}.countdown-section{margin-top:45px}.countdown-section h2{font-size:8px;letter-spacing:.22em;margin-bottom:12px}.countdown{grid-template-columns:1fr 8px 1fr 8px 1fr 8px 1fr;padding:0;max-width:440px}.digits{font-size:clamp(42px,12.4vw,76px);letter-spacing:-.06em}.time-divider{font-size:24px;line-height:2.5}.unit-label{font-size:7px;letter-spacing:.14em;margin-top:9px}.countdown-rule{margin:27px auto 23px}.event-date{font-size:10px;letter-spacing:.08em}.date-dot{padding:0 6px}.timezone{font-size:8px;margin-top:10px}.actions{flex-direction:column;gap:9px;margin-top:26px}.calendar-button{min-height:47px;padding:0 26px;font-size:9px}.share-button{min-height:41px;font-size:8px}.closing{font-size:19px;margin-top:40px}.footer{min-height:64px;grid-template-columns:1fr;gap:0;padding:10px 0;font-size:7px;letter-spacing:.1em}.share-status{margin-bottom:-16px}}
@media(max-width:360px){.page{padding:0 22px}.event-date{font-size:9px}.digits{font-size:42px}.closing{font-size:17px}}


.masthead,.hero,.footer{text-shadow:0 2px 12px rgba(3,17,24,.85)}.countdown-section{position:relative;isolation:isolate}.intro{position:relative;isolation:isolate}.intro:before,.countdown-section:before{content:'';position:absolute;z-index:-1;pointer-events:none}.intro:before{inset:-12% -18%;background:radial-gradient(ellipse at center,rgba(5,16,28,.55),transparent 72%)}.countdown-section:before{inset:-28px -14%;background:radial-gradient(ellipse at center,rgba(5,16,28,.48),transparent 74%)}.world-mist{background:radial-gradient(ellipse at 28% 65%,rgba(100,131,153,.06),transparent 46%),radial-gradient(ellipse at 70% 80%,rgba(112,128,165,.06),transparent 45%)}.page-frame{border-color:rgba(218,194,143,.27)}
