: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}.language-switch{margin-left:auto;padding:8px 13px;border:1px solid var(--forest-900);border-radius:999px;color:var(--forest-900);font-size:12px;font-weight:800;text-decoration:none}.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}.english{display:block;margin-top:3px;color:inherit;font-size:.78em;font-weight:500;line-height:1.4;letter-spacing:.01em;text-transform:none;opacity:.82}h1>.english{margin-top:9px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.36em;font-weight:600;line-height:1.3}button>.english{margin-top:3px;font-size:.72em;font-weight:600}.required{display:block;margin-top:4px;color:var(--copper-600);font-size:11px;font-weight:800;line-height:1.35}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}.profile-details .field>.english,.profile-details legend>.english{color:var(--ink-700);font-size:11px}.consent-field{display:flex;align-items:flex-start;gap:10px}.consent-field>input{flex:0 0 auto;margin-top:4px}.profile-save-success{position:fixed;z-index:20;left:50%;top:50%;width:min(calc(100% - 40px),380px);padding:24px;border:1px solid #b7c8bb;border-radius:18px;background:#f9fbf8f5;box-shadow:0 18px 60px #102d2350;text-align:center;transform:translate(-50%,-50%);animation:success-pop .32s ease both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}.profile-save-success>span{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 12px;border-radius:50%;color:#fff;background:var(--forest-900);font-size:25px;font-weight:900}.profile-save-success>strong{display:block;color:var(--forest-900);font-size:18px}.profile-save-success>small{display:block;margin-top:4px;color:var(--ink-700)}.profile-save-success>p{margin:14px 0 0}.notice{padding:14px;border-radius:12px;background:var(--paper-200);color:var(--ink-700);line-height:1.5}.passport-loading{text-align:center}.passport-loading .eyebrow{text-align:left}.passport-loader{display:grid;place-items:center;width:72px;height:72px;margin:8px auto 24px;border:1px solid var(--line);border-radius:50%;background:var(--paper-100);box-shadow:0 12px 30px #173c2e18}.passport-loader i{width:34px;height:34px;border:3px solid #d8c6aa;border-top-color:var(--forest-900);border-radius:50%;animation:passport-loading .9s linear infinite}.passport-loading h1{margin-top:0}@keyframes passport-loading{to{transform:rotate(360deg)}}.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(-6px)}.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)}.profile-mission{position:relative;overflow:hidden;margin-top:20px!important;border:2px solid var(--copper-500)!important;background:linear-gradient(135deg,#fff9ed,#f1e4cd)!important;box-shadow:0 12px 26px #6c45211a}.profile-mission:after{content:"✦";position:absolute;top:-24px;right:10px;color:#b2773c20;font-size:96px;line-height:1;pointer-events:none}.profile-mission>span{position:relative;z-index:1;color:var(--copper-600);font-size:11px;font-weight:900;letter-spacing:.14em}.profile-mission h2{position:relative;z-index:1;margin:8px 0;color:var(--forest-900);font-family:Georgia,serif;font-size:clamp(24px,7vw,32px);line-height:1.2}.profile-mission p,.profile-mission button{position:relative;z-index:1}.passport-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.passport-menu button.secondary{min-height:52px;margin:0;padding:10px 8px;font-size:clamp(12px,3.5vw,15px)}.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}@keyframes success-pop{0%{opacity:0;transform:translate(-50%,-47%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.admin{width:min(100%,1120px)}.admin h1{margin-top:64px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,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}.metrics small{display:block;margin-top:4px;color:var(--ink-600)}.analytics{margin:28px 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:#f9fbf8cc}.analytics h2{margin-top:4px}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.analytics-breakdown{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--paper-50)}.analytics-breakdown h3{margin:0 0 3px;color:var(--forest-900)}.analytics-breakdown>small{color:var(--ink-600)}.analytics-breakdown ol{display:grid;gap:12px;margin:18px 0 0}.analytics-breakdown li{display:block;padding:0;border:0}.analytics-breakdown li div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.analytics-breakdown li span{overflow-wrap:anywhere}.analytics-breakdown li strong{color:var(--forest-900)}.analytics-breakdown li i{display:block;height:5px;margin-top:6px;border-radius:999px;background:linear-gradient(90deg,var(--copper-500),var(--forest-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;white-space:nowrap;flex:0 0 auto}.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}.qr-management{margin:28px 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:#f9fbf8cc}.qr-management h2{margin-top:4px}.qr-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.created-qr{display:grid;justify-items:center;gap:12px;margin:20px 0!important;border:2px solid var(--forest-900)!important;text-align:center}.created-qr img{width:min(100%,320px);background:#fff}.created-qr code{width:100%;padding:10px;overflow-wrap:anywhere;white-space:normal;background:var(--paper-100)}.master-management{margin:28px 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:#f9fbf8cc}.master-management h2{margin-top:4px}.master-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.master-forms article{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--paper-50)}.master-forms h3{margin-top:0}.master-management td:last-child{display:flex;gap:7px}.master-management td button{margin:0;white-space:nowrap}.button-link{display:inline-block;padding:12px 18px;border-radius:10px;color:#fff;background:var(--forest-900);font-weight:800;text-decoration:none}.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,.qr-form,.master-forms,.analytics-grid{grid-template-columns:1fr}.verification-form button{width:100%}.passport-copy{transform:translateY(0)}}@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}}.admin-page-nav{width:min(100% - 32px,1080px);margin:12px auto 0;text-align:right}.admin-page-nav a{display:inline-block;padding:10px 14px;border:1px solid #b7c8bb;border-radius:999px;background:#fff;color:#173c2e;font-weight:700;text-decoration:none}
