:root{--paper: #F7F2E8;--paper-2: #EFE7D9;--print: #FFFDF8;--ink: #3B342E;--ink-2: #5A5048;--ink-3: #6B6158;--line: #E2D8C7;--line-2: #EDE5D6;--field-line: #CFC4B1;--sage: #55654B;--sage-hover: #465440;--sage-ink: #3F4C37;--sage-tint: #E6EADD;--sage-soft: #7D8E72;--sage-ring: #B9C6AD;--clay: #B9806A;--peach: #F5E9DE;--scrim: rgba(59, 52, 46, .4);--shadow-print: 0 1px 2px rgba(59, 52, 46, .12), 0 10px 26px rgba(59, 52, 46, .1);--serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--hand: "Caveat", "Segoe Print", cursive;--script: "Allura", "Snell Roundhand", cursive;--leaf: #2F6B3C;--intro-space: clamp(32px, 6vw, 56px);--gutter: max(16px, env(safe-area-inset-left, 0px));--gutter-r: max(16px, env(safe-area-inset-right, 0px));--max: 1200px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}body{margin:0;font-family:var(--sans);font-size:18px;line-height:1.6;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(rgba(80,62,44,.05) 1px,transparent 1.3px),radial-gradient(rgba(80,62,44,.035) 1px,transparent 1.3px);background-size:5px 5px,7px 7px;background-position:0 0,2px 3px}img{max-width:100%;display:block}a{color:var(--sage);text-underline-offset:3px}a:hover{color:var(--sage-ink)}:focus-visible{outline:3px solid var(--sage-ring);outline-offset:2px;border-radius:4px}html{-webkit-tap-highlight-color:transparent}dialog:focus,dialog:focus-visible{outline:none}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.serif{font-family:var(--serif)}.hand{font-family:var(--hand)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}.eyebrow{margin:0;font-size:14px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.eyebrow--sage{color:var(--sage)}.section-title{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(34px,5vw,52px);line-height:1.1}.section{padding-block:clamp(56px,8vw,96px);border-top:1px solid var(--line)}.muted{color:var(--ink-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font:600 18px/1.1 var(--sans);text-decoration:none;text-align:center;border:1.5px solid transparent;cursor:pointer}.btn svg{flex:none}.btn-primary{background:var(--sage);color:var(--print)}@media (hover: hover){.btn-primary:hover{background:var(--sage-hover);color:var(--print)}}.btn-primary:active{background:var(--sage-hover)}.btn-secondary{background:var(--print);color:var(--sage-ink);border-color:var(--sage)}@media (hover: hover){.btn-secondary:hover{background:var(--sage-tint);color:var(--sage-ink)}}.btn-secondary:active{background:var(--sage-tint)}.btn[disabled]{opacity:.6;cursor:progress}.btn-block{width:100%}.link-strong{display:inline-flex;align-items:center;min-height:44px;font-weight:600}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--paper)}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:#f7f2e8f2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.2) blur(6px);backdrop-filter:saturate(1.2) blur(6px)}.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:80px}.brand{display:flex;align-items:baseline;gap:12px;color:var(--ink);text-decoration:none}.brand__name{font-family:var(--serif);font-size:26px;font-weight:600}.brand__dates{font-size:15px;color:var(--ink-3)}.topnav{display:flex;gap:8px}.topnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;color:var(--ink);text-decoration:none;font-weight:500}.topnav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--sage)}.tabbar{display:none}@media (max-width: 767px){.topbar{display:none}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--print);border-top:1px solid var(--line);box-shadow:0 -6px 20px #3b342e0f;padding:4px max(8px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;color:var(--ink-2);font-size:14px;font-weight:500;text-decoration:none}.tabbar__icon{display:flex;align-items:center;justify-content:center;width:56px;height:30px;border-radius:999px}.tabbar a[aria-current=page]{color:var(--sage-ink);font-weight:600}.tabbar a[aria-current=page] .tabbar__icon{background:var(--sage-tint)}main{padding-bottom:96px}html{scroll-padding-top:16px}}.ceremony-strip{display:none;align-items:center;justify-content:center;gap:8px;min-height:48px;padding-left:var(--gutter);padding-right:var(--gutter-r);background:var(--sage-tint);color:var(--sage-ink);font-size:15px;font-weight:600;text-decoration:none;text-align:center}@media (max-width: 767px){.ceremony-strip{display:flex}}.print{background:var(--print);padding:12px 12px 14px;box-shadow:var(--shadow-print)}.ph{position:relative;overflow:hidden;background-color:#c8a27e;background-size:cover;background-position:center}.ph img{width:100%;height:100%;object-fit:cover}.ph--0{background-image:radial-gradient(16% 13% at 50% 38%,rgba(112,82,60,.85) 96%,transparent 100%),radial-gradient(40% 30% at 50% 100%,rgba(112,82,60,.8) 96%,transparent 100%),radial-gradient(70% 55% at 28% 18%,rgba(255,240,215,.75),transparent 70%),linear-gradient(175deg,#e4c7a3,#b88e69)}.ph--1{background-image:radial-gradient(11% 9% at 38% 40%,rgba(108,78,58,.85) 96%,transparent 100%),radial-gradient(11% 9% at 62% 37%,rgba(108,78,58,.85) 96%,transparent 100%),radial-gradient(46% 30% at 50% 100%,rgba(108,78,58,.78) 96%,transparent 100%),radial-gradient(60% 50% at 75% 15%,rgba(255,240,215,.7),transparent 70%),linear-gradient(170deg,#e0c29c,#af8763)}.ph--2{background-color:#c9b79a;background-image:radial-gradient(14% 10% at 72% 22%,rgba(255,244,222,.9),transparent 100%),linear-gradient(180deg,#eadbc2 0,#eadbc2 46%,#a9b2a0 46%,#a9b2a0 66%,#dcc6a2 66%)}.ph--3{background-image:radial-gradient(7% 6% at 20% 44%,rgba(100,74,55,.8) 96%,transparent 100%),radial-gradient(7% 6% at 38% 40%,rgba(100,74,55,.8) 96%,transparent 100%),radial-gradient(7% 6% at 56% 42%,rgba(100,74,55,.8) 96%,transparent 100%),radial-gradient(7% 6% at 74% 39%,rgba(100,74,55,.8) 96%,transparent 100%),radial-gradient(60% 34% at 50% 100%,rgba(100,74,55,.72) 96%,transparent 100%),linear-gradient(180deg,#e6cda8,#b48e6b)}.ph--4{background-color:#c6ae8a;background-image:radial-gradient(40% 30% at 30% 30%,rgba(255,240,215,.7),transparent 70%),linear-gradient(180deg,#e8d5b6 0,#e8d5b6 55%,#b6a27c 55%,#b6a27c 70%,#9c8463 70%)}.ph--5{background-color:#b9af88;background-image:radial-gradient(60% 40% at 50% 10%,rgba(255,240,215,.6),transparent 70%),linear-gradient(180deg,#dcd3ae,#8f946d)}.hero-wrap{position:relative;--hero-p: 0}.hero{--avail: calc(100svh - 80px - env(safe-area-inset-top, 0px)) ;display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center;min-height:var(--avail);padding-block:clamp(20px,5svh,64px) clamp(56px,9svh,96px)}.hero__media{justify-self:center;transform:translate3d(0,calc(var(--hero-p) * 60px),0)}.hero__portrait{position:relative;padding-bottom:clamp(40px,6svh,60px);width:clamp(200px,min(34vw,calc((var(--avail) - 190px) * .78)),460px);transform:rotate(calc(-2deg - var(--hero-p) * 3deg)) scale(calc(1 - var(--hero-p) * .04));transform-origin:50% 60%}.hero__portrait .ph{aspect-ratio:23 / 28}.hero__portrait figcaption{position:absolute;left:0;right:0;bottom:clamp(6px,1.4svh,12px);text-align:center;font-family:var(--hand);font-size:clamp(20px,3svh,26px);color:var(--ink-2)}.hero__text{display:flex;flex-direction:column;gap:clamp(10px,2.6svh,24px);min-width:0;transform:translate3d(0,calc(var(--hero-p) * -30px),0);opacity:calc(1 - var(--hero-p) * .6)}.hero__name{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(42px,min(7.5vw,11svh),104px);line-height:.98;letter-spacing:-.01em}.hero__dates{margin:clamp(4px,1svh,10px) 0 0;font-family:var(--serif);font-size:clamp(20px,min(2.4vw,3.8svh),30px);color:var(--ink-2)}.hero__quote{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(20px,min(2.3vw,3.6svh),30px);line-height:1.3;max-width:34ch}@media (prefers-reduced-motion: no-preference){.hero__media{animation:hero-print 1.1s cubic-bezier(.2,.7,.2,1) both}.hero__text>*{animation:hero-up .9s cubic-bezier(.2,.7,.2,1) both}.hero__text>:nth-child(1){animation-delay:.15s}.hero__text>:nth-child(2){animation-delay:.28s}.hero__text>:nth-child(3){animation-delay:.45s}.hero__text>:nth-child(4){animation-delay:.62s}.scroll-cue{animation:cue 2.4s 1.6s ease-in-out infinite}}@keyframes hero-up{0%{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}@keyframes hero-print{0%{opacity:0;translate:0 40px;rotate:4deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes cue{0%,to{translate:0 0}50%{translate:0 6px}}.scroll-cue{position:absolute;left:0;right:0;margin-inline:auto;width:fit-content;bottom:clamp(8px,2.5svh,24px);display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-height:44px;padding:4px 16px;color:var(--ink-3);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;opacity:calc(1 - var(--hero-p) * 3)}.scroll-cue:hover{color:var(--sage-ink)}@media (max-height: 620px){.scroll-cue{display:none}}@media (min-width: 768px) and (max-height: 820px){.hero .ceremony{padding:18px 24px;gap:12px}.hero .ceremony__when{font-size:clamp(24px,4svh,34px)}.hero .ceremony__where{font-size:16px;line-height:1.45}.hero .ceremony__actions .btn{min-height:46px;font-size:16px;padding:0 20px}}@media (min-width: 768px) and (max-height: 640px){.hero__text>.eyebrow{display:none}}@media (prefers-reduced-motion: no-preference){[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d, 0ms),transform .8s cubic-bezier(.2,.7,.2,1) var(--d, 0ms)}[data-reveal].is-in{opacity:1;transform:none}.timeline li[data-reveal] .timeline__line{transform:scaleY(0);transform-origin:top;transition:transform .9s ease calc(var(--d, 0ms) + .25s)}.timeline li[data-reveal].is-in .timeline__line{transform:none}.timeline li[data-reveal] .timeline__dot{transform:scale(.3);transition:transform .5s cubic-bezier(.3,1.6,.5,1) calc(var(--d, 0ms) + .15s)}.timeline li[data-reveal].is-in .timeline__dot{transform:none}}.topbar{transition:box-shadow .3s,background-color .3s}.topbar.is-scrolled{box-shadow:0 6px 24px #3b342e14}@media (max-width: 767px){.hero{--avail: calc(100svh - 132px) ;display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(10px,2svh,18px);min-height:0;padding-block:clamp(16px,3svh,32px) 24px}.hero__text{display:contents;opacity:1;transform:none}.hero__text>.eyebrow{order:1}.hero__text>div{order:2}.hero__media{order:3;margin-top:4px}.hero__portrait{width:clamp(150px,calc((var(--avail) - 300px) * .62),240px);padding-bottom:42px}.hero__portrait figcaption{font-size:21px;bottom:7px}.hero__name{font-size:clamp(38px,min(12vw,6.5svh),52px)}.hero__quote{order:4;font-size:clamp(19px,2.8svh,23px)}.hero .ceremony{order:5;text-align:left;width:100%;margin-top:clamp(16px,4svh,40px)}.scroll-cue{display:none}}.ceremony{background:var(--print);border-radius:20px;padding:clamp(24px,3vw,32px) clamp(22px,3vw,36px);box-shadow:0 1px 2px #3b342e14,0 12px 32px #3b342e14;display:flex;flex-direction:column;gap:18px}.ceremony__when{margin:0;font-family:var(--serif);font-size:clamp(30px,3vw,40px);font-weight:600;line-height:1.1}.ceremony__when span{font-weight:500;color:var(--ink-2)}.ceremony__where{display:flex;gap:12px;align-items:flex-start;margin:0}.ceremony__where svg{flex:none;margin-top:3px;color:var(--sage)}.ceremony__actions{display:flex;flex-wrap:wrap;gap:12px}@media (max-width: 767px){.ceremony__actions{flex-direction:column}.ceremony__actions .btn{width:100%}}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,7vw,96px)}@media (max-width: 900px){.two-col{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:32px;min-width:0}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.timeline li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:16px;padding-bottom:32px}.timeline li:last-child{padding-bottom:0}.timeline__rail{display:flex;flex-direction:column;align-items:center}.timeline__dot{width:14px;height:14px;border-radius:50%;background:var(--sage-soft);margin-top:9px;flex:none}.timeline__line{flex:1;width:2px;background:#d6dccb;margin-top:6px}.timeline li:last-child .timeline__line{display:none}.timeline__time{margin:0;font-family:var(--serif);font-size:28px;font-weight:600;color:var(--sage);line-height:1.2}.timeline__detail{margin:4px 0 0;color:var(--ink-3)}.infos{background:var(--print);border-radius:20px;padding:4px clamp(22px,3vw,36px);box-shadow:0 1px 2px #3b342e0f}.info{display:flex;gap:18px;padding-block:24px;border-bottom:1px solid var(--line-2)}.info:last-child{border-bottom:0}.info svg{flex:none;margin-top:3px;color:var(--sage)}.info h3{margin:0;font-size:19px;font-weight:600}.info p{margin:4px 0 0;color:var(--ink-2)}.gallery-head{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;margin-bottom:clamp(32px,5vw,56px)}.gallery-head .hand{margin:0;font-size:clamp(26px,2.4vw,30px);line-height:1.2;color:var(--sage)}.gallery-head h2{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(42px,6vw,72px);line-height:1.05}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 20px}@media (max-width: 767px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}}.tile{display:flex;flex-direction:column;gap:10px;padding:0;border:0;background:none;font:inherit;text-align:left;color:var(--ink-2);cursor:zoom-in}.tile .ph{aspect-ratio:4 / 3;border-radius:10px;box-shadow:0 1px 2px #3b342e1a,0 6px 18px #3b342e14;transition:transform .2s}.tile:hover .ph{transform:translateY(-3px)}.tile__cap{font-size:16px;line-height:1.4}.tile__cap strong{font-weight:600;color:var(--ink)}@media (max-width: 767px){.tile .ph{aspect-ratio:1}.tile__cap{font-size:15px}}.gallery-foot{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:40px;text-align:center}.cta-band{background:var(--paper-2);padding-block:clamp(56px,8vw,96px);text-align:center}.cta-band__inner{display:flex;flex-direction:column;align-items:center;gap:16px}.cta-band h2{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(30px,4vw,48px);line-height:1.15}.cta-band p{margin:0;color:var(--ink-2);max-width:36ch}.row-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}.footer{padding-block:32px;font-size:15px;color:var(--ink-3)}.footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}@media (max-width: 767px){.footer{padding-bottom:112px}}.intro{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding-top:var(--intro-space)}.intro .eyebrow{margin-bottom:4px}.intro__name{margin:0;font-family:var(--script);font-weight:400;font-size:clamp(64px,11vw,104px);line-height:1.15;color:var(--leaf)}.intro__dates{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.4vw,24px);letter-spacing:.02em;color:var(--ink)}.intro__quote{margin:12px 0 0;font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.4vw,26px);max-width:34ch}.intro__photo{display:flex;justify-content:center;padding-top:var(--intro-space)}.intro__portrait{position:relative;width:clamp(200px,56vw,300px);margin:0;padding-bottom:52px;transform:rotate(-2deg)}.intro__portrait .ph{aspect-ratio:23 / 28}.intro__portrait figcaption{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:20px}.intro__photo+.page-head{padding-top:var(--intro-space)}.intro__photo+.page-head h1{font-size:clamp(56px,8vw,80px)}.page-head{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding-block:clamp(40px,7vw,88px) clamp(32px,5vw,56px)}.page-head h1{margin:0;font-family:var(--script);font-weight:400;font-size:clamp(64px,9vw,104px);line-height:1.1}.page-head p{margin:0;max-width:40ch;color:var(--ink-2)}.note{font-size:15px;color:var(--ink-3)}.wall{columns:4 260px;column-gap:40px;padding-bottom:96px}.wall>*{break-inside:avoid;margin-bottom:48px}@media (max-width: 767px){.wall{columns:1}.wall>*{margin-bottom:32px}}.memory{position:relative;margin:0;box-shadow:var(--shadow-print);transform:rotate(var(--tilt, 0deg))}@media (max-width: 767px){.memory{transform:rotate(calc(var(--tilt, 0deg) / 3))}}.memory--photo{background:var(--print);padding:14px 14px 20px}.memory--photo .ph{aspect-ratio:auto}.memory--photo .ph img{display:block;height:auto}.memory--photo .memory__msg{margin:16px 4px 0;font-family:var(--hand);font-size:26px;line-height:1.2;color:var(--ink);white-space:pre-line}.memory--photo.is-long .memory__msg{font-family:var(--sans);font-size:18px;line-height:1.6}.memory--text{padding:34px 26px 24px}.memory--text .memory__msg{margin:0;white-space:pre-line}.memory__quote{display:block;height:30px;font-family:var(--serif);font-size:60px;line-height:1;color:var(--sage-soft)}.memory__meta{margin:14px 4px 0;font-size:16px;line-height:1.4}@media (min-width: 900px){.wall{columns:2;column-gap:48px}.memory--photo.is-long.is-portrait{display:flow-root;padding:20px 20px 22px}.memory--photo.is-long.is-portrait .ph{float:left;width:40%;margin:0 22px 12px 0}.memory--photo.is-long.is-portrait .memory__msg{margin-top:-4px}.memory--photo.is-long.is-portrait .memory__meta{clear:both;padding-top:14px}}.memory__meta strong{font-weight:600}.memory__meta span{color:var(--ink-3)}.tape{position:absolute;top:-13px;left:50%;width:104px;height:28px;margin-left:-52px;background:#c8d2bac7;transform:rotate(-5deg)}.pin{position:absolute;top:12px;left:50%;width:15px;height:15px;margin-left:-7px;border-radius:50%;background:var(--clay);box-shadow:0 2px 3px #3b342e4d,inset -2px -2px #0000001f}.bg-print{background:var(--print)}.bg-sage{background:var(--sage-tint)}.bg-peach{background:var(--peach)}.empty{max-width:520px;margin:0 auto 96px;padding:40px 28px;text-align:center;background:var(--print);border-radius:20px;box-shadow:var(--shadow-print);display:flex;flex-direction:column;align-items:center;gap:14px}.empty h2{margin:0;font-family:var(--serif);font-weight:500;font-size:32px}.empty p{margin:0;color:var(--ink-2)}.fab{position:fixed;z-index:15;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(96px + env(safe-area-inset-bottom,0px));box-shadow:0 8px 24px #3b342e38;transition:opacity .25s,transform .25s,visibility .25s}.fab--no-tabbar{bottom:calc(20px + env(safe-area-inset-bottom,0px))}.fab.is-hidden{opacity:0;transform:translateY(16px);visibility:hidden;pointer-events:none}@media (prefers-reduced-motion: reduce){.fab{transition:none}}@media (min-width: 768px){.fab{display:none}}dialog{padding:0;border:0;color:var(--ink);max-width:none;max-height:none}dialog::backdrop{background:var(--scrim)}.sheet{width:min(560px,100%);max-height:calc(100dvh - 48px);margin:auto;border-radius:24px;background:var(--paper);box-shadow:0 20px 60px #3b342e40;overflow:auto;overscroll-behavior:contain}@media (max-width: 767px){.sheet{width:100%;margin:auto 0 0;max-height:calc(100dvh - 40px);border-radius:28px 28px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}}.sheet__handle{display:block;width:44px;height:5px;border-radius:3px;background:#d3c8b6;margin:10px auto 0}.sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 16px 0 24px}.sheet__head h2{margin:0;font-family:var(--serif);font-weight:500;font-size:34px;line-height:1.1}.sheet__head p{margin:6px 0 0;font-size:16px;color:var(--ink-2)}.icon-btn{flex:none;width:48px;height:48px;border-radius:50%;border:1px solid #DDD3C2;background:var(--print);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-btn:hover{background:var(--sage-tint)}.form{display:flex;flex-direction:column;gap:24px;padding:24px}.lbl{display:block;font-size:17px;font-weight:600;margin-bottom:8px}.lbl .opt{font-weight:400;color:var(--ink-3)}.field{display:block;width:100%;min-height:56px;padding:14px 16px;border:1.5px solid var(--field-line);border-radius:14px;background:var(--print);font:400 18px/1.5 var(--sans);color:var(--ink)}.field::placeholder{color:#7a7067}.field:focus{outline:3px solid var(--sage-ring);outline-offset:1px;border-color:var(--sage)}textarea.field{min-height:156px;resize:vertical}.field-hint{margin:6px 0 0;font-size:15px;color:var(--ink-3)}.field-error{margin:6px 0 0;font-size:15px;font-weight:600;color:#8a3b2a}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--field-line);background:var(--print);font:500 16px/1 var(--sans);color:var(--ink);cursor:pointer}.chip[aria-pressed=true]{background:var(--sage-tint);border-color:var(--sage);color:var(--sage-ink);font-weight:600}.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:148px;padding:20px;border:2px dashed var(--sage-ring);border-radius:18px;background:#eef1e8;text-align:center;cursor:pointer}.drop.is-over{background:var(--sage-tint);border-color:var(--sage)}.drop__icon{width:52px;height:52px;border-radius:50%;background:var(--print);display:flex;align-items:center;justify-content:center;color:var(--sage)}.drop strong{color:var(--sage-ink)}.drop span{font-size:15px;color:var(--ink-2)}.preview{display:flex;align-items:center;gap:14px;padding:12px;border-radius:16px;background:var(--print);border:1px solid var(--line)}.preview img{width:88px;height:88px;object-fit:cover;border-radius:8px}.preview p{margin:0;flex:1;font-size:16px}.drive-box{margin-top:14px;padding:18px;border-radius:16px;background:var(--print);border:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.drive-box p{margin:0;font-size:16px;line-height:1.5}.btn-small{min-height:48px;padding:0 18px;font-size:16px;align-self:flex-start}.alert{margin:0;padding:14px 16px;border-radius:14px;background:#f6e3dc;color:#6e2f21;font-size:16px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.thanks{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:32px 24px 28px}.thanks__mark{width:64px;height:64px;border-radius:50%;background:var(--sage);color:var(--print);display:flex;align-items:center;justify-content:center}.thanks h2{margin:8px 0 0;font-family:var(--serif);font-weight:500;font-size:34px;line-height:1.15}.thanks p{margin:0;color:var(--ink-2)}.thanks .actions{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:12px}.viewer{width:100vw;height:100dvh;margin:0;background:#f1eadd}.viewer::backdrop{background:#f1eadd}.viewer__inner{height:100%;display:flex;flex-direction:column;padding:calc(20px + env(safe-area-inset-top,0px)) var(--gutter-r) calc(24px + env(safe-area-inset-bottom,0px)) var(--gutter)}.viewer__top{display:flex;justify-content:flex-end}.viewer__stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(16px,4vw,40px)}.viewer__figure{flex:1;min-width:0;min-height:0;max-height:100%;margin:0;display:flex;align-items:center;justify-content:center;gap:clamp(24px,4vw,64px)}.viewer__print{background:var(--print);padding:14px;box-shadow:0 2px 4px #3b342e1a,0 24px 56px #3b342e24;max-width:min(760px,100%)}.viewer__print .ph{width:min(680px,70vw);aspect-ratio:4 / 3;max-height:62dvh}.viewer__print .ph img{object-fit:contain;background:var(--print)}.viewer__cap{width:320px;display:flex;flex-direction:column;gap:10px}.viewer__cap strong{font-family:var(--serif);font-size:clamp(28px,3vw,42px);font-weight:600;line-height:1.1}.viewer__cap span{color:var(--ink-2)}.viewer__nav{display:none}.nav-btn{width:64px;height:64px}@media (max-width: 900px){.viewer__figure{flex-direction:column;gap:20px}.viewer__print .ph{width:min(560px,calc(100vw - 56px))}.viewer__cap{width:auto;text-align:center;padding-inline:8px}.viewer__stage>.nav-btn{display:none}.viewer__nav{display:flex;gap:12px;padding-top:16px}.viewer__nav .btn{flex:1}}.admin{padding-block:40px 96px;display:flex;flex-direction:column;gap:24px}.admin h1{margin:0;font-family:var(--serif);font-weight:500;font-size:48px}.tabs{display:flex;flex-wrap:wrap;gap:8px}.admin-card{background:var(--print);border-radius:16px;padding:20px;box-shadow:0 1px 2px #3b342e14;display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 20px}.admin-card img{width:140px;height:105px;object-fit:cover;border-radius:8px}.admin-card p{margin:0;white-space:pre-line}.admin-card .actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:10px}@media (max-width: 600px){.admin-card{grid-template-columns:1fr}}.login{max-width:460px;display:flex;flex-direction:column;gap:16px}
