:root{--bg:#f3efe6;--bg-deep:#e6dfd2;--ink:#1c2a24;--muted:#5a6a62;--accent:#2f6f5e;--accent-soft:#d7ebe3;--line:#cfc6b6;--danger:#a33b2d;--card:rgba(255,252,246,0.92);--shadow:0 18px 40px rgba(28,42,36,0.08);--font-display:"Iowan Old Style","Palatino Linotype",Palatino,"Songti SC",serif;--font-body:"Hiragino Sans","PingFang SC","Noto Sans JP","Segoe UI",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;color:var(--ink);font-family:var(--font-body);background:radial-gradient(circle at 12% 8%,#fff8ea 0,transparent 42%),radial-gradient(circle at 88% 0,#dceee7 0,transparent 36%),linear-gradient(160deg,var(--bg),var(--bg-deep))}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}main{width:min(920px,calc(100% - 2rem));margin:0 auto;padding:2.5rem 0 4rem}.brand{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);letter-spacing:.04em;margin:0 0 .35rem}.lead{color:var(--muted);margin:0 0 1.75rem;line-height:1.6}.panel{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);padding:1.5rem}.nav{justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:1.5rem;font-size:.95rem}.nav,.nav-links{display:flex;gap:1rem}.lang-switch{display:flex;align-items:center;gap:.5rem;font-size:.88rem}.lang-switch select{width:auto;min-width:8rem;padding:.45rem .6rem}.lang-label{color:var(--muted)}.upload-field{display:grid;grid-gap:.45rem;gap:.45rem}.upload-preview{font-size:.88rem}.locale-file,.upload-preview{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.locale-file-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.locale-file-btn{background:#fff;color:var(--ink);border:1px solid var(--line);padding:.65rem .9rem}.locale-file-btn:hover{border-color:var(--accent);color:var(--accent)}.locale-file-name{color:var(--muted);font-size:.9rem;word-break:break-all}.phone-dial{display:grid;grid-template-columns:minmax(7.5rem,.9fr) 1.4fr;grid-gap:.5rem;gap:.5rem}.phone-dial-code,.phone-dial-local{min-width:0}.phone-dial-code select{width:100%}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.guests-block{display:grid;grid-gap:1rem;gap:1rem}.guests-heading{margin:.5rem 0 0;font-size:1.15rem;font-family:var(--font-display)}.guest-card{border:1px solid var(--line);background:rgba(255,255,255,.55);padding:1rem}.guest-card-title{margin:0 0 .35rem;font-size:1rem;color:var(--accent)}.passport-preview{width:min(100%,320px);border:1px solid var(--line);background:#fff;margin-top:.35rem}.passport-admin{display:grid;grid-gap:.75rem;gap:.75rem}button.linkish{background:transparent;color:var(--accent);padding:0;border:0;font:inherit;cursor:pointer;text-decoration:none}button.linkish:hover{text-decoration:underline}.locale-date-selects{display:grid;grid-template-columns:1.1fr 1.4fr .9fr;grid-gap:.5rem;gap:.5rem}.locale-date-selects select{width:100%;min-width:0}.form-grid{display:grid;grid-gap:1rem;gap:1rem}@media (min-width:720px){.form-grid.two{grid-template-columns:1fr 1fr}}label{display:grid;grid-gap:.4rem;gap:.4rem;font-size:.92rem}label span.req:after{content:" *";color:var(--danger)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);padding:.7rem .8rem;border-radius:0}textarea{min-height:96px;resize:vertical}button{border:0;background:var(--accent);color:#fff;padding:.85rem 1.25rem;cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}.hint{font-size:.8rem;color:var(--muted)}.error{color:var(--danger);font-size:.88rem;margin:.25rem 0 0}.banner{padding:.85rem 1rem;margin-bottom:1rem;background:var(--accent-soft);border:1px solid #b7d7cb}.banner.error{background:#f7e4e0;border-color:#e0b6ae;color:var(--danger)}table{width:100%;border-collapse:collapse;font-size:.92rem}td,th{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600}.dl{grid-gap:.75rem}.dl,.dl div{display:grid;gap:.75rem}.dl div{grid-template-columns:140px 1fr;grid-gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--line)}.dl dt{color:var(--muted)}.dl dd,.dl dt{margin:0}