:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#1d2924;background:#eef2ec;font-synthesis:none;--forest-950: #112d23;--forest-900: #173c2e;--forest-800: #244d3d;--copper-600: #a35d36;--copper-500: #c46f3c;--paper-50: #f9fbf8;--paper-100: #eef2ec;--paper-200: #dfe8e0;--ink-700: #405048;--ink-600: #56635c;--line: #ccd4ce;--danger: #8d3d32}footer{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0 1rem;font-size:.78rem}footer a,.legal a{color:inherit;text-underline-offset:3px}.brand-link{display:inline-flex;align-items:center;color:inherit;text-decoration:none}.brand-logo{display:block;width:min(58vw,238px);height:auto}.admin-label{margin-left:auto;color:var(--ink-700);font-size:10px;font-weight:800;letter-spacing:.18em}.legal article{line-height:1.8}.legal article h1{margin-bottom:1.5rem}.legal article h2{margin-top:2rem;font-size:1.05rem}.legal article p{max-width:70ch}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% 10%,#d6e4d7,transparent 35%),var(--paper-100)}main{width:min(100%,520px);min-height:100vh;margin:auto;padding:32px 24px 64px}header{display:flex;align-items:center;min-height:38px}.progress{height:3px;background:#d2d9d3;margin:28px 0 72px;border-radius:9px;overflow:hidden}.progress i{display:block;height:100%;background:var(--copper-500);transition:width .3s}section{animation:appear .35s ease}h1,h2{color:var(--forest-900)}h1{font-family:Georgia,Yu Mincho,serif;font-size:48px;line-height:1.05;font-weight:500;margin:0 0 20px}h2{margin-top:32px}p{line-height:1.75;color:var(--ink-600)}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--copper-600);text-transform:uppercase}button{width:100%;border:0;border-radius:14px;padding:16px;margin-top:28px;background:var(--forest-900);color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:transform .15s ease,background .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--forest-800);transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c46f3c66;outline-offset:2px}button:disabled{opacity:.35;cursor:not-allowed}button.secondary{margin-top:12px;background:var(--paper-200);color:var(--forest-900)}button.secondary:hover:not(:disabled){background:#d3dfd5}button.danger{margin-top:12px;background:transparent;border:1px solid #b9877f;color:var(--danger)}label{display:block;padding:15px 0;border-bottom:1px solid var(--line)}.field{font-size:13px;color:#66726b}.field input,.field select,.field textarea{display:block;width:100%;border:1px solid #bdc9c0;border-radius:12px;padding:14px;margin-top:8px;background:var(--paper-50);color:#1d2924;font:inherit;font-size:17px}.field textarea{min-height:110px;resize:vertical}.field small{display:block;margin-top:6px;color:var(--ink-700);line-height:1.5}.profile-details fieldset{border:1px solid var(--line);border-radius:14px;margin:18px 0;padding:14px}.profile-details legend{padding:0 6px;font-weight:700}.profile-details fieldset label{display:flex;gap:9px;align-items:flex-start;margin:10px 0;line-height:1.4}.profile-details strong{color:var(--copper-500);font-size:.78em}.notice{padding:14px;border-radius:12px;background:var(--paper-200);color:var(--ink-700);line-height:1.5}.passport{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;overflow:hidden;aspect-ratio:1586 / 992;padding:7% 7.5%;border-radius:22px;color:#35223c;background:#f7efe1 url(/assets/passport-bg.jpg) center / 100% 100% no-repeat;box-shadow:0 18px 45px #5d47252b}.passport-copy{position:relative;z-index:1;width:58%;transform:translateY(-4px)}.passport span{font-size:clamp(8px,2vw,10px);letter-spacing:.2em;color:#6f5a4b}.passport h2{color:#35223c;font-family:Georgia,serif;font-size:clamp(16px,4.2vw,22px);line-height:1.1;margin:2px 0 clamp(7px,2.4vw,13px)}.passport .name{margin:3px 0 2px;font-size:clamp(14px,4vw,20px);line-height:1.25;color:#35223c;font-weight:700}.passport-copy>small{display:block;font-size:clamp(8px,2vw,11px);color:#6f5a4b;overflow-wrap:anywhere}.passport dl{display:flex;gap:clamp(18px,6vw,35px);margin:clamp(8px,3vw,18px) 0 0}.passport dl div{display:flex;flex-direction:column}.passport dt{font-size:clamp(8px,2vw,11px);color:#7f6958}.passport dd{font-size:clamp(15px,4vw,20px);margin:2px 0;color:#35223c;font-weight:700}.recent-journey{display:grid;gap:3px;padding:15px 17px;margin:20px 0 0;border:1px solid var(--line);border-radius:14px;background:#f9fbf899}.recent-journey span{color:var(--copper-600);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.recent-journey strong{color:var(--forest-900)}.recent-journey small{color:var(--ink-600)}.gift-card>span{display:inline-block;padding:6px 9px;border-radius:999px;background:var(--paper-200);color:var(--forest-900);font-size:11px;font-weight:800}.gift-card h2{margin:14px 0 4px}.gift-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gift-card dl div{padding:12px;border-radius:10px;background:var(--paper-100)}.gift-card dt{color:var(--ink-600);font-size:11px}.gift-card dd{margin:5px 0 0;color:var(--forest-900);font-weight:800}.gift-used{margin-top:16px;padding:18px;border:2px solid var(--forest-900);border-radius:14px;text-align:center}.gift-used strong{display:block;margin:5px 0;font-size:30px;letter-spacing:.12em}section>article:not(.passport){padding:18px;margin:12px 0;border:1px solid var(--line);border-radius:14px;background:#f9fbf899}ol{list-style:none;margin:24px 0;padding:0}ol li{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}ol small{color:#68776f}[role=alert]{padding:12px 14px;border-radius:12px;color:var(--danger);background:#f3e5e2}.admin{width:min(100%,1120px)}.admin h1{margin-top:64px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metrics div{padding:18px;border:1px solid var(--line);border-radius:14px;background:#f9fbf8cc}.metrics dt{color:#68776f;font-size:12px}.metrics dd{margin:8px 0 0;color:var(--forest-900);font-size:28px;font-weight:800}.table{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#f9fbf8cc}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:13px 14px;border-bottom:1px solid #dce3dd;white-space:nowrap}th{color:#68776f;font-size:11px;letter-spacing:.06em;text-transform:uppercase}td{font-size:14px}td button{width:auto;margin:0;padding:8px 12px;border-radius:9px;font-size:12px}.admin-person-detail{margin:24px 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:#f9fbf8cc}.detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.detail-heading h2{margin:4px 0 16px}button.compact{width:auto;margin:0;padding:10px 16px}.admin-person-detail .metrics dd{font-size:18px;overflow-wrap:anywhere}.admin-person-detail ol span{display:grid;gap:3px}.gift-verification{margin:28px 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:#f9fbf8cc}.gift-verification h2{margin-top:4px}.verification-form{display:grid;grid-template-columns:minmax(180px,320px) auto;align-items:center;gap:10px}.verification-form input{margin:0;font-size:20px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.verification-form button{width:auto;margin:0}.verification-result{margin-top:16px;border:2px solid var(--forest-900)!important}.verification-result>strong{color:var(--forest-900);font-size:20px}.verification-result dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.verification-result dt{color:var(--ink-600);font-size:11px}.verification-result dd{margin:4px 0 0;overflow-wrap:anywhere;font-weight:700}.catalog-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.catalog-summary article{display:grid;gap:7px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#f9fbf8cc}.catalog-summary span{color:var(--ink-600);font-size:12px}.catalog-summary strong{color:var(--forest-900);font-size:28px}.catalog-summary small{padding-top:7px;border-top:1px solid var(--line);color:var(--ink-700)}@keyframes appear{0%{opacity:0;transform:translateY(8px)}}@media(max-width:640px){.admin h1{margin-top:52px}.metrics{grid-template-columns:repeat(2,1fr)}.catalog-summary,.verification-form,.verification-result dl{grid-template-columns:1fr}.verification-form button{width:100%}.passport-copy{transform:translateY(2px)}}@media(max-width:420px){h1{font-size:40px}.progress{margin-bottom:52px}.passport{border-radius:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
