:root{--bg:#f6f1e8;--surface:#fcf9f3;--ink:#22191a;--muted:#72675f;--accent:#a88a55;--accent-ink:#7f6536;--accent-on-dark:#c9ab72;--line:#22191a24;--inverse-bg:#3a1820;--inverse-ink:#f6ecdf;--seal:#6e1f2e;--seal-deep:#45101b;--danger:#9e2f2a}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-gutter:stable}main{overflow-x:clip}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif;font-weight:300;line-height:1.6;overflow-x:hidden}body.locked{overflow:hidden}html:has(body.locked){background:#eee6d8}::selection{background:var(--accent);color:#fff}a,button,label,input,select,textarea{-webkit-tap-highlight-color:transparent}.display{letter-spacing:-.02em;font-family:Noto Serif Display,Georgia,serif;font-weight:200}.label{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:500}.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(16px,5vw,48px)}#intro{--env:#e0d0b0;--env-2:#cfbb96;--liner:#f8f1e4;z-index:100;color:var(--ink);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .6 0 0 0 0 .52 0 0 0 0 .47 0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(60% 50% at 30% 30%,#f7f2ea,#0000 70%),radial-gradient(50% 60% at 75% 70%,#e2d6c2,#0000 70%),#eee6d8;place-items:center;padding:16px;transition:opacity .8s 2.3s,visibility 0s linear 3.1s;display:grid;position:fixed;inset:0;overflow:hidden}#intro.open{opacity:0;visibility:hidden;pointer-events:none}#intro .scene{justify-items:center;gap:clamp(18px,3.5vh,30px);width:100%;display:grid}.gate-head,.gate-foot{text-align:center;justify-items:center;gap:12px;max-width:440px;transition:opacity .4s;display:grid}.gate-foot{align-content:start;min-height:48px}#intro.open .gate-head,#intro.open .gate-foot{opacity:0}#intro .open-btn{border:1px solid var(--ink);color:var(--ink);letter-spacing:.26em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;padding:14px 30px;font:500 .72rem Inter;transition:background .3s,color .3s}@media (hover:hover){#intro .open-btn:hover{background:var(--ink);color:var(--bg)}}.env-hit.can-open{cursor:pointer}.env-hit{perspective:1400px}.env{aspect-ratio:385/540;width:min(62vw,320px,40vh);position:relative}.env.tilting{transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg))}#intro.open .env{translate:0 var(--open-y,18%);scale:var(--open-scale,1);transition:translate 1s cubic-bezier(.5,0,.2,1) .5s,scale 1s cubic-bezier(.5,0,.2,1) .5s}.env-glare{z-index:6;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle at var(--px,50%) var(--py,40%), #fffffff2, #fff0 60%);opacity:var(--glow,0);border-radius:2px;display:none;position:absolute;inset:0}.env.tilting .env-glare{display:block}@media (width<=640px){.env{transform-origin:50% 20%}}.env-back{background:var(--env-2);border-radius:2px;position:absolute;inset:0;box-shadow:0 2px 3px #1c191826,0 26px 40px -12px #1c191866}.env-back:after{content:"";background:var(--liner);border-radius:2px;position:absolute;inset:3% 5% 55%;box-shadow:inset 0 6px 10px -6px #3c191459}.env-card-clip{z-index:2;clip-path:inset(-400% 0 0);pointer-events:none;position:absolute;inset:0}.env-card{aspect-ratio:1240/1760;background:var(--bg);width:88%;position:absolute;top:6%;left:6%;box-shadow:0 1px 3px #1c191833}.env-card img{width:100%;height:100%;display:block}#intro.open .env-card{animation:1.3s cubic-bezier(.3,0,.2,1) 1.15s forwards card-rise}@keyframes card-rise{to{transform:translateY(-58%);box-shadow:0 30px 50px -18px #1c191873}}.env-pocket{z-index:3;pointer-events:none;filter:drop-shadow(0 -1px 2px #3c191447);position:absolute;inset:0}.env-pocket>i{clip-path:polygon(0 0,50% 44%,100% 0,100% 100%,0 100%);background:linear-gradient(180deg, color-mix(in srgb, var(--env) 90%, #000), var(--env-2) 60%, color-mix(in srgb, var(--env-2) 92%, #000));border-radius:2px;position:absolute;inset:0}.env-pocket>i:after,.env-flap .front .tri:after{content:"";opacity:.16;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.env-flap{z-index:6;transform-origin:50% 0;height:60%;position:absolute;top:0;left:0;right:0}#intro.open .env-flap{animation:1s linear .45s forwards flap-open}#intro.open .env-flap .front{animation:1s linear .45s forwards flap-front}#intro.open .env-flap .back{animation:1s linear .45s forwards flap-back}@keyframes flap-open{0%,5%{z-index:6;transform:scaleY(1)}10%{transform:scaleY(.999)}15%{transform:scaleY(.993)}20%{transform:scaleY(.973)}25%{transform:scaleY(.92)}30%{transform:scaleY(.798)}35%{transform:scaleY(.564)}40%{transform:scaleY(.213)}42.7%{z-index:6;transform:scaleY(0)}42.8%{z-index:1}45%{transform:scaleY(-.171)}50%{transform:scaleY(-.485)}55%{transform:scaleY(-.7)}60%{transform:scaleY(-.833)}65%{transform:scaleY(-.911)}70%{transform:scaleY(-.955)}75%{transform:scaleY(-.979)}80%{transform:scaleY(-.99)}90%{transform:scaleY(-.998)}to{z-index:1;transform:scaleY(-.999)}}@keyframes flap-front{0%,42.7%{opacity:1}42.8%,to{opacity:0}}@keyframes flap-back{0%,42.7%{opacity:0}42.8%,to{opacity:1}}.env-flap .face{position:absolute;inset:0}.env-flap .front{filter:drop-shadow(0 3px 3px #3c191459)}.env-flap .back{opacity:0;transform:scaleY(-1)}.env-flap .tri{clip-path:polygon(0 0,100% 0,100% 3%,55% 95%,50% 100%,45% 95%,0 3%);border-radius:2px 2px 0 0;position:absolute;inset:0}.env-flap .front .tri{background:linear-gradient(180deg, var(--env), color-mix(in srgb, var(--env) 88%, #fff))}.env-flap .back .tri{clip-path:polygon(0 100%,100% 100%,100% 97%,55% 5%,50% 0,45% 5%,0 97%);background:linear-gradient(0deg, color-mix(in srgb, var(--env-2) 92%, #000), var(--env));border-radius:0 0 2px 2px}.seal{z-index:7;aspect-ratio:1;pointer-events:none;width:34%;animation:.9s cubic-bezier(.2,1.3,.3,1) .15s both seal-in;position:absolute;top:56%;left:50%;translate:-50% -50%}.seal>svg{filter:drop-shadow(0 1.5px 1px #280a0880)drop-shadow(0 7px 9px #280a0852);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.monogram{z-index:1;filter:drop-shadow(0 -.8px #5a3c14a6)drop-shadow(0 1px #fffaf0d9)drop-shadow(0 1px 2px #5a3c142e);width:50%;animation:.8s both mg-in;position:absolute;top:5%;left:50%;overflow:visible;translate:-50%}.mg-big{font:italic 200 118px Noto Serif Display,Georgia,serif}.mg-amp{font:italic 300 26px Noto Serif Display,Georgia,serif}.mg-date{letter-spacing:3px;font:500 9px Inter,sans-serif}@keyframes mg-in{0%{opacity:0}}.seal-amp-big{font:italic 300 36px Noto Serif Display,Georgia,serif}@keyframes seal-in{0%{opacity:0;scale:1.6}}.seal .half{visibility:hidden;will-change:transform, opacity}.seal .half.l{transform-origin:33%}.seal .half.r{transform-origin:71%}#intro.open .seal .whole{opacity:0}#intro.open .seal .half{visibility:visible}#intro.open .seal .half.l{animation:.8s cubic-bezier(.45,0,.75,.4) forwards seal-l}#intro.open .seal .half.r{animation:.8s cubic-bezier(.45,0,.75,.4) forwards seal-r}@keyframes seal-l{20%{transform:translate(-1.7%)rotate(-4deg)}to{opacity:0;transform:translate(-13%,58%)rotate(-38deg)}}@keyframes seal-r{20%{transform:translate(1.7%)rotate(4deg)}to{opacity:0;transform:translate(15%,53%)rotate(30deg)}}.env-code{z-index:5;place-items:center;transition:opacity .35s;display:grid;position:absolute;inset:72% 0 6%;container-type:inline-size}#intro.open .env-code{opacity:0}html:has(.progress){scrollbar-width:none;scrollbar-gutter:auto}html:has(.progress)::-webkit-scrollbar{display:none}.progress{z-index:45;pointer-events:none;background:color-mix(in srgb, var(--accent) 30%, transparent);opacity:0;width:1px;height:clamp(90px,20vh,170px);transition:opacity .6s;position:fixed;top:50%;right:clamp(10px,2vw,24px);translate:0 -50%}.progress:before{content:"";background:var(--accent);transform-origin:50% 0;transform:scaleY(var(--progress,0));position:absolute;inset:0}.progress i{left:50%;top:calc(var(--progress,0) * 100%);border:1px solid var(--accent);background:var(--bg);width:7px;height:7px;position:absolute;translate:-50% -50%;rotate:45deg}body.scrolled .progress{opacity:1}body.locked .progress{opacity:0}@media (width<=640px){.progress{display:none}}section.block{padding-block:clamp(80px,13vw,150px)}@media (width>=1216px){section.block.wrap,footer .wrap{padding-inline:0}}.sec-head{grid-template-columns:1fr;gap:14px;margin-bottom:clamp(40px,7vw,72px);display:grid}.sec-head h2{letter-spacing:-.03em;font-family:Noto Serif Display,serif;font-size:clamp(2.2rem,6vw,4rem);font-weight:200;line-height:1}.sec-head h2 i{color:var(--accent)}.sec-head p{color:var(--muted);max-width:460px}@media (width>=860px){.sec-head{grid-template-columns:1fr auto;align-items:end}.sec-head p{text-align:right}}.reveal{opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1)}.reveal.in{opacity:1}.arrow-link{color:var(--ink);letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--ink);cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:10px;padding-bottom:4px;font-family:inherit;font-size:.74rem;font-weight:500;text-decoration:none;transition:gap .3s,color .3s,border-color .3s;display:inline-flex}@media (hover:hover){.arrow-link:hover{color:var(--accent-ink);border-color:var(--accent-ink);gap:16px}}.arrow-link:after{content:"→";letter-spacing:0;font-size:1rem}.schedule{border-top:1px solid var(--line)}.row{grid-template-columns:1fr;gap:10px;padding:34px 0;display:grid;position:relative}.row:after{content:"";background:var(--line);transform-origin:0;height:1px;transition:transform 1.2s cubic-bezier(.77,0,.18,1) .2s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.row.in:after{transform:none}.row .time{letter-spacing:-.04em;font-family:Noto Serif Display,serif;font-size:clamp(3rem,9vw,5rem);font-weight:200;line-height:.9}.row .cheers{width:1.3em;height:1.3em;margin-left:.485em;display:block}.row h3{font-size:1.1rem;font-weight:500}.row .tag{color:var(--accent-ink);letter-spacing:.22em;text-transform:uppercase;margin-bottom:6px;font-size:.7rem;font-weight:600;display:block}.row .place{color:var(--muted)}@media (width<=859px){.row{grid-template-columns:auto 1fr;gap:6px 24px}.row .time{grid-row:1/span 3;min-width:2.3em;font-size:clamp(2.4rem,11vw,3.4rem)}.row>:not(.time){grid-column:2}}@media (width>=860px){.row{grid-template-columns:220px 1fr 1fr auto;align-items:center;gap:30px}}.dark{--accent:var(--accent-on-dark);--accent-ink:var(--accent-on-dark);background:var(--inverse-bg);color:var(--inverse-ink)}.dark .label,.dark .sec-head p{color:color-mix(in srgb, var(--inverse-ink) 60%, transparent)}.dark .arrow-link{color:var(--inverse-ink);border-color:var(--inverse-ink)}@media (hover:hover){.dark .arrow-link:hover{color:var(--accent);border-color:var(--accent)}}.date-grid{gap:56px;display:grid}@media (width>=860px){.date-grid{grid-template-columns:1.1fr 1fr;align-items:center}}@media (width<=859px){.date-grid{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 clamp(16px,5vw,40px)}.date-grid>div:last-child{display:contents}.date-grid .countdown,.date-grid .cal-links{grid-column:1/-1}.date-grid .countdown{text-align:center}.date-grid .countdown .label{margin-right:-.24em}.date-grid .cal-links{justify-content:center}.date-grid .cal{justify-self:end;width:100%}.cal .head{flex-wrap:wrap;gap:2px 12px}.bigdate span{translate:none!important}}.bigdate{letter-spacing:-.05em;font-family:Noto Serif Display,serif;font-size:clamp(5rem,22vw,13rem);font-weight:200;line-height:.82}.bigdate span{width:fit-content;display:block}.bigdate .m{color:var(--accent);font-style:italic}.cal{max-width:380px}.cal .head{justify-content:space-between;margin-bottom:16px;display:flex}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.cal-grid .dow{letter-spacing:.14em;text-transform:uppercase;opacity:.5;padding-bottom:10px;font-size:.62rem}.cal-grid .d{aspect-ratio:1;opacity:.75;place-items:center;font-size:.9rem;display:grid;position:relative}.cal-grid .d.t{opacity:1;color:var(--inverse-bg);font-weight:600}.cal-grid .d.t:before{content:"";background:var(--accent);z-index:-1;border-radius:50%;position:absolute;inset:4px}.cal-grid .d.t{z-index:0}.countdown{border-top:1px solid color-mix(in srgb, var(--inverse-ink) 25%, transparent);grid-template-columns:repeat(4,1fr);margin:44px 0 34px;display:grid}.countdown div{padding-top:16px}.countdown b{letter-spacing:-.03em;font-family:Noto Serif Display,serif;font-size:clamp(2.2rem,7vw,3.6rem);font-weight:200;line-height:1;display:block}.cal-links{flex-wrap:wrap;gap:28px;display:flex}.countdown b{font-variant-numeric:tabular-nums;animation:.45s cubic-bezier(.2,.7,.2,1) tick}@keyframes tick{0%{opacity:0;transform:translateY(-35%)}}.sec-head h2.rsvp-title{text-wrap:balance;font-size:clamp(1.9rem,4.6vw,3.2rem);line-height:1.15}.rsvp-form{max-width:640px}.rsvp-note{margin:8px 0 24px;font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.2}.rsvp-note i{color:var(--accent)}form .field{margin-bottom:28px}form label.lbl{margin-bottom:8px;display:block}form input[type=text],form select,form textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;border-radius:0;padding:8px 0 12px;font:300 1.15rem Inter,sans-serif;transition:border-color .3s}form select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(-45deg, transparent 50%, var(--muted) 50%);background-position:calc(100% - 12px) 55%,calc(100% - 6px) 55%;background-repeat:no-repeat;background-size:6px 6px}form select option{color:var(--ink)}form textarea{resize:vertical;min-height:44px}form input:focus,form select:focus,form textarea:focus{border-color:var(--accent);outline:none}.pills{flex-wrap:wrap;gap:10px;display:flex}.pills input{opacity:0;pointer-events:none;position:absolute}.pills label{border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:12px 22px;font-size:.92rem;transition:all .25s}.pills input:checked+label{background:var(--ink);border-color:var(--ink);color:var(--bg)}.pills input:focus-visible+label{outline:2px solid var(--accent);outline-offset:2px}.seg{border:1px solid var(--line);border-radius:999px;grid-template-columns:1fr 1fr;padding:4px;display:grid;position:relative}.seg-ind{background:var(--ink);border-radius:999px;width:calc(50% - 4px);transition:transform .4s cubic-bezier(.2,.7,.2,1);position:absolute;top:4px;bottom:4px;left:4px}.seg.no .seg-ind{transform:translate(100%)}.seg button{z-index:1;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:12px 10px;font:400 .92rem Inter,sans-serif;transition:color .3s;position:relative}.seg button[aria-checked=true]{color:var(--bg)}.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}.stepper{border:1px solid var(--line);border-radius:999px;justify-content:space-between;align-items:center;padding:4px;display:flex}.stepper button{background:color-mix(in srgb, var(--ink) 6%, transparent);width:40px;height:40px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;font:300 1.3rem/1 Inter,sans-serif;transition:background .2s}@media (hover:hover){.stepper button:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 22%, transparent)}}.stepper button:disabled{opacity:.3;cursor:default}.stepper output{font-variant-numeric:tabular-nums;font:400 1.15rem Inter,sans-serif}.two{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (width<=640px){#rsvp form{--frame:color-mix(in srgb, var(--accent) 50%, transparent)}#rsvp form .field{margin-bottom:24px}#rsvp form .lbl.label{color:var(--ink);margin-bottom:10px;font-size:.78rem}#rsvp form input[type=text],#rsvp form textarea{border:1px solid var(--frame);background:var(--surface);border-radius:14px;min-height:54px;padding:14px 16px;font-size:1.1rem}#rsvp form textarea{resize:none;min-height:96px}#rsvp form ::placeholder{color:color-mix(in srgb, var(--muted) 60%, transparent);opacity:1}#rsvp form input:focus,#rsvp form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}#rsvp .seg{border-color:var(--frame);background:var(--surface);padding:5px}#rsvp .seg-ind{width:calc(50% - 5px);top:5px;bottom:5px;left:5px}#rsvp .seg button{padding:16px 8px;font-size:1rem}#rsvp .two{gap:12px}#rsvp .stepper{border-color:var(--frame);background:var(--surface);padding:5px}#rsvp .stepper button{width:46px;height:46px;font-size:1.5rem}#rsvp .stepper output{font-size:1.3rem}#rsvp .submit{padding:22px;font-size:.8rem}}.submit{cursor:pointer;background:var(--ink);width:100%;color:var(--bg);letter-spacing:.26em;text-transform:uppercase;border:0;border-radius:999px;margin-top:6px;padding:20px;font:500 .76rem Inter;transition:background .3s}@media (hover:hover){.submit:hover{background:var(--seal)}}.submit:disabled{opacity:.6;cursor:wait}.thanks .ck{background:var(--ink);width:56px;height:56px;color:var(--bg);border-radius:50%;place-items:center;margin-bottom:18px;font-size:1.4rem;animation:.5s cubic-bezier(.2,1.4,.4,1) pop;display:grid}@keyframes pop{0%{opacity:0;transform:scale(.3)}}.thanks .display{font-size:clamp(2.6rem,7vw,4rem)}.thanks .display i{color:var(--accent)}@media (width<=859px){.thanks{text-align:center}.thanks .ck{margin-inline:auto}}.download{cursor:pointer;border:1px solid var(--ink);color:var(--ink);letter-spacing:.2em;text-transform:uppercase;background:0 0;border-radius:999px;align-items:center;gap:12px;margin-top:18px;padding:16px 28px;font:500 .72rem Inter,sans-serif;transition:background .3s,color .3s;display:inline-flex}.download span{letter-spacing:0;font-size:1rem;transition:transform .3s}@media (hover:hover){.download:hover{background:var(--ink);color:var(--bg)}.download:hover span{transform:translateY(3px)}}.download:disabled{opacity:.6;cursor:wait}.print-card{align-items:center;gap:clamp(40px,7vw,80px);display:grid}@media (width>=860px){.print-card{grid-template-columns:minmax(0,420px) 1fr;column-gap:clamp(72px,10vw,150px)}}.paper{perspective:1200px;justify-self:center;width:min(100%,420px)}.paper img,.paper-empty{aspect-ratio:1240/1760;background:var(--bg);width:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1),box-shadow .8s;display:block;transform:rotate(-2.2deg);box-shadow:0 1px 2px #1c191814,0 30px 60px -28px #1c191866}.paper .zoom{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block;position:relative}.zoom-hint{width:40px;height:40px;color:var(--ink);pointer-events:none;background:#ffffffd9;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:14px;right:14px;box-shadow:0 4px 14px -4px #1c191859}.zoom-hint svg{width:20px;height:20px}@media (hover:hover){.zoom-hint{display:none}.paper:hover img{transform:rotate(0)translateY(-6px);box-shadow:0 1px 2px #1c191814,0 40px 70px -28px #1c191873}}.print-btns{flex-wrap:wrap;align-items:center;gap:28px;display:flex}@media (width<=859px){.print-btns{justify-content:center}}.card-view{cursor:zoom-out;background:0 0;border:0;max-width:100vw;max-height:100dvh;margin:auto;padding:0;overflow:visible}.card-view::backdrop{background:#1c1414d1}.card-view img{width:auto;max-width:calc(100vw - 32px);height:auto;max-height:calc(100dvh - 32px);display:block;box-shadow:0 30px 80px -20px #0009}.card-view .close{cursor:pointer;color:#fff;background:#ffffff24;border:0;border-radius:50%;width:44px;height:44px;font:300 1.8rem/1 Inter,sans-serif;position:fixed;top:12px;right:12px}.print-btns .download{margin-top:0}.print-btns .arrow-link:disabled{opacity:.5;cursor:wait}.petals{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.petals i{background:var(--accent);opacity:.9;border-radius:80% 0;animation:linear forwards petal;position:absolute;top:-24px}.petals .p1{background:color-mix(in srgb, var(--accent) 45%, #fff)}.petals .p2{background:color-mix(in srgb, var(--seal) 55%, #fff)}@keyframes petal{50%{transform:translate(var(--sway), 55vh) rotate(calc(var(--rot) / 2))}to{transform:translate(calc(var(--sway) * -.5), 112vh) rotate(var(--rot));opacity:0}}body:after{content:"";z-index:99;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}@media (hover:none){body:after{mix-blend-mode:normal;opacity:.06}}footer{padding:clamp(48px, 7vw, 80px) 0 calc(32px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}footer .sec-head{margin-bottom:clamp(18px,3vw,28px)}footer .sec-head h2{font-size:clamp(1.7rem,4vw,2.4rem)}footer .contacts{flex-wrap:wrap;gap:18px clamp(32px,7vw,72px);margin:0 0 clamp(36px,6vw,56px);display:flex}.contact{color:var(--ink);gap:4px;text-decoration:none;display:grid}.contact b{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-family:Noto Serif Display,serif;font-size:clamp(1.2rem,3vw,1.5rem);font-weight:300;line-height:1.2;transition:color .3s}@media (hover:hover){.contact:hover b{color:var(--accent)}}.foot-end{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:12px 24px;font-size:.7rem;font-weight:500;display:flex}.foot-end a{color:var(--ink);text-decoration:none}@media (hover:hover){.foot-end a:hover{color:var(--accent-ink)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}#intro .label{color:inherit;opacity:.6}.gate-kicker{align-items:center;gap:12px;display:inline-flex}.gate-kicker:before,.gate-kicker:after{content:"";opacity:.6;background:currentColor;width:28px;height:1px}.gate-title{letter-spacing:-.03em;font-family:Noto Serif Display,serif;font-size:clamp(2.2rem,8.5vw,3.4rem);font-weight:200;line-height:1.05}.gate-title i{color:var(--accent)}.gate-text{color:var(--muted);text-wrap:balance;max-width:34ch;font-size:.92rem;line-height:1.55}.gate-head>*,.env-hit,.gate-foot{animation:.8s cubic-bezier(.2,.7,.2,1) both gate-in}.gate-head>:nth-child(2){animation-delay:60ms}.gate-head>:nth-child(3){animation-delay:.12s}.env-hit{animation-delay:.1s}.gate-foot{animation-delay:.2s}@keyframes gate-in{0%{opacity:0;transform:translateY(12px)}}.code{gap:clamp(6px,4.5cqw,12px);display:flex}.code input{text-align:center;background:var(--liner);width:clamp(30px,17.5cqw,50px);height:clamp(38px,22cqw,60px);color:var(--ink);caret-color:#0000;transition:border-color .25s,box-shadow .25s,transform .25s,background .35s,color .35s;transition-delay:0s, 0s, 0s, calc(var(--i,0) * 70ms), calc(var(--i,0) * 70ms);border:1px solid #6e502840;border-radius:9px;font:300 clamp(1.2rem,12.5cqw,1.75rem) Noto Serif Display,serif;box-shadow:inset 0 2px 4px #5a411e24,0 1px #ffffff59}.code input::placeholder{color:#6e50284d;font-size:.9rem}.code input:focus{border-color:var(--seal);background:#fffaf5;outline:none;transform:translateY(-2px);box-shadow:0 0 0 3px #fff8ec99,0 10px 18px -10px #3c14198c}.code input:focus::placeholder{color:#0000}.code input.filled{background:#fffaf5}.code input:disabled{opacity:1}.code.busy input{animation:1s ease-in-out infinite code-wait;animation-delay:calc(var(--i,0) * .12s)}@keyframes code-wait{50%{transform:translateY(-4px)}}.code.ok input{background:var(--seal);border-color:var(--seal-deep);color:#fff3ee}.code.shake{animation:.45s shake}@keyframes shake{20%,60%{transform:translate(-9px)}40%,80%{transform:translate(9px)}}.gate-error{min-height:1.4em;color:var(--danger);font-size:.88rem;font-weight:400}.gate-error:not(:empty){animation:.35s both gate-in}.form-error{color:var(--danger);margin:-10px 0 16px;font-size:.92rem}.admin-login{place-items:center;min-height:100svh;padding:16px;display:grid}.admin-login form{width:min(100%,380px)}.admin-login h1,.admin-head h1{margin:8px 0 36px;font-size:clamp(2.2rem,7vw,3.4rem);line-height:1.05}.admin-login h1 i,.admin-head h1 i{color:var(--accent)}.admin-login input[type=text],.admin-login input[type=password]{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;padding:8px 0 12px;font:300 1.15rem Inter,sans-serif}.admin-login input:focus{border-color:var(--accent);outline:none}.admin{padding-top:48px;padding-bottom:80px}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;display:flex}.admin-head h1{margin-bottom:0}.admin-actions{flex-wrap:wrap;gap:22px;padding-bottom:8px;display:flex}.stats{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;margin:36px 0;display:grid}.stats div{background:var(--surface);gap:6px;padding:22px 20px;display:grid}.stats b{letter-spacing:-.03em;font-family:Noto Serif Display,serif;font-size:2.6rem;font-weight:200;line-height:1}.stats div:first-child b{color:var(--accent)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.toolbar .pills label{padding:9px 16px;font-size:.85rem}.search{border:1px solid var(--line);background:var(--surface);max-width:320px;color:var(--ink);border-radius:999px;flex:220px;padding:10px 16px;font:400 .92rem Inter,sans-serif}.search:focus{border-color:var(--accent);outline:none}@media (width<=640px){.search{max-width:none;font-size:16px}}.table-wrap{border:1px solid var(--line);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th{text-align:left;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:14px 16px;font-size:.64rem;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 16px}tr:last-child td{border-bottom:0}td.name{white-space:nowrap;font-weight:500}td.msg{color:var(--muted);min-width:200px}td.date{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.n{text-align:right;font-variant-numeric:tabular-nums}td.del{text-align:right;white-space:nowrap}.badge{border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:500;display:inline-block}.badge.yes{background:color-mix(in srgb, var(--accent) 18%, transparent);color:color-mix(in srgb, var(--accent) 70%, var(--ink))}.badge.no{background:var(--line);color:var(--muted)}.link{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:4px 6px;font:500 .82rem Inter}.link:hover{color:var(--ink)}.link.danger{color:var(--danger)}.empty{color:var(--muted);text-align:center;padding:40px 0}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px 26px;margin:0 0 22px;display:flex}.tabs button{cursor:pointer;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;background:0 0;border:0;padding:10px 0 12px;font:500 .74rem Inter,sans-serif;position:relative}.tabs button span{font-variant-numeric:tabular-nums;letter-spacing:0;opacity:.7;margin-left:8px}.tabs button.on{color:var(--ink)}.tabs button.on:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:0;right:0}.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge.warn{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}td.device{white-space:nowrap;color:var(--muted)}td.device small,td.msg small{opacity:.75;font-variant-numeric:tabular-nums;font-size:.72rem;display:block}td.msg small{display:inline}tr.removed td{color:var(--muted)}tr.removed td.name{text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--danger) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--danger) 55%, transparent)}.stats-tab{gap:34px;display:grid}.stats-tab .stats{margin:0}.chart{gap:12px;margin:0;display:grid}.chart figcaption{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;display:flex}.chart h3{letter-spacing:-.02em;font:300 1.5rem/1.1 Noto Serif Display,serif}.ch-legend{color:var(--muted);gap:18px;font-size:.82rem;display:flex}.ch-legend i,.ch-tip i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:7px;display:inline-block}.ch-box{background:var(--surface);border:1px solid var(--line);padding:12px 8px 4px;position:relative}.ch-box svg{width:100%;height:auto;display:block;overflow:visible}.ch-grid{stroke:var(--line);stroke-width:1px}.ch-base{stroke:color-mix(in srgb, var(--ink) 35%, transparent);stroke-width:1px}.ch-cross{stroke:color-mix(in srgb, var(--ink) 30%, transparent);stroke-width:1px;stroke-dasharray:3 3}.ch-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font:400 11px Inter,sans-serif}.ch-val{fill:var(--ink);font-variant-numeric:tabular-nums;font:500 13px Inter,sans-serif}.ch-tip{pointer-events:none;z-index:2;background:var(--ink);min-width:170px;color:var(--bg);border-radius:6px;gap:3px;padding:9px 12px;font-size:.8rem;display:grid;position:absolute;top:10px;box-shadow:0 10px 24px -10px #22191a80}.ch-tip b{font-weight:500}.ch-tip div{align-items:center;display:flex}.ch-tip span{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:16px;font-weight:500}.ch-table summary{cursor:pointer;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.74rem;font-weight:500}.ch-table .table-wrap{max-height:360px;margin-top:14px;overflow-y:auto}.ch-foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.9rem;display:flex}td mark{background:color-mix(in srgb, var(--accent) 30%, transparent);color:inherit;border-radius:2px;padding:0 1px}.admin-login{position:relative}.admin-login .back-link{position:absolute;top:28px;right:clamp(16px,5vw,48px)}.admin-notice{border-left:2px solid var(--danger);background:color-mix(in srgb, var(--danger) 7%, transparent);color:var(--danger);margin:28px 0 -12px;padding:12px 16px;font-size:.92rem}
