:root{--ink:#1b2d4a;--washi:#faf6ee;--snow:#fff;--sumi:#231f1f;--muted:#665d50;--border:#8b8172;--soft:#e9e2d6;--mori:#3a6b47;--akane:#a43e2b;--ease:cubic-bezier(.22,1,.36,1);font-family:'Noto Sans JP',system-ui,sans-serif;color:var(--ink);background:#e9e2d6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #be6731;outline-offset:4px}button{border:0}p,h1,h2,h3,figure{margin:0}h1{font-family:'Noto Serif JP',Georgia,serif;font-weight:500;font-size:32px;line-height:1.45;letter-spacing:.015em;white-space:pre-line}html[lang=en] h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:42px;line-height:1.12}html[lang=ko] h1{font-family:'Noto Serif KR','Noto Serif JP',serif;font-size:28px}html[lang=zh-Hans] h1{font-family:'Noto Serif SC','Noto Serif JP',serif;font-size:30px}html[lang=zh-Hant] h1{font-family:'Noto Serif TC','Noto Serif JP',serif;font-size:30px}.skip{position:fixed;left:8px;top:-100px;z-index:20;background:#fff;padding:12px}.skip:focus{top:8px}#app{max-width:480px;margin:auto;min-height:100svh;background:var(--washi);box-shadow:0 0 100px #1b2d4a18}.review-banner{padding:6px 12px;text-align:center;font-size:11px;line-height:1.45;background:var(--soft);color:var(--muted)}main{min-height:calc(100svh - 28px);outline:0}.view{animation:arrive .36s var(--ease)}.hero{height:324px;position:relative;overflow:hidden;background:var(--ink);color:#fff}.hero>img{width:100%;height:100%;object-fit:cover;object-position:30% 45%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#102b2966 0%,#102b2944 36%,#102b29e0 100%);pointer-events:none}.site-header{height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;position:relative;z-index:3}.hero .site-header{position:absolute;inset:0 0 auto}.brand{display:flex;align-items:center;gap:8px}.roof{width:32px;height:32px;flex:none;color:var(--mori)}.hero .roof{color:#fff}.brand-name{font-size:15px;font-weight:500;letter-spacing:.02em}.brand-sub{font-size:10px;line-height:1.5;margin-top:4px}.lang-button{min-width:112px;min-height:48px;border:1px solid var(--border);background:#fff;color:var(--ink);border-radius:24px;padding:10px 16px;font-size:14px;font-weight:500}.hero-copy{position:absolute;left:24px;right:24px;bottom:50px;z-index:2;pointer-events:none}.eyebrow{font-size:10px;line-height:1.7;margin-bottom:14px}.photo-hint{position:absolute;top:118px;left:24px;right:24px;font-size:12px;z-index:2;text-shadow:0 1px 8px #000;pointer-events:none}.photo-link{position:absolute;inset:76px 0 0;z-index:2}.photo-link:active{background:#ffffff0c}.sheet{position:relative;margin-top:-20px;padding:24px 24px 20px;background:var(--washi);border-radius:24px 24px 0 0;z-index:4;display:grid;gap:12px}.invitation{font-size:15px;line-height:1.65;font-weight:500}.muted{color:var(--muted)}.small{font-size:13px;line-height:1.6}.purpose{margin-top:3px;font-size:13px;line-height:1.6;color:var(--muted)}.amount-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px;font-weight:500}.amount-heading span{font-size:12px;color:var(--muted);font-weight:400}.amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.amount-choice{height:72px;border:1px solid var(--border);background:#fff;border-radius:12px;color:var(--ink);font-size:16px;font-weight:500;transition:background .18s,color .18s,transform .18s}.amount-choice[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.amount-choice small{display:block;font-size:10px;margin-top:8px;font-weight:400}.amount-choice:active,.button:active{transform:scale(.98)}.button{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;min-height:48px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:12px;color:var(--ink);background:#fff;text-decoration:none;font-size:15px;font-weight:500;line-height:1.5;transition:transform .18s,background .18s}.primary{min-height:56px;background:var(--ink);color:#fff;border-color:var(--ink);border-radius:16px;box-shadow:0 6px 16px #1b2d4a24}.plain{background:none;border-color:transparent;box-shadow:none}.center{text-align:center}.story{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-radius:16px;min-height:78px;text-decoration:none}.story p{font-size:13px;line-height:1.65}.story .muted{margin-top:3px}.legal-link{font-size:11px;margin-top:0;color:var(--muted)}.content{padding:24px;display:grid;gap:24px}.content h1{margin:12px 0 0}.progress{font-size:10px;color:var(--muted)}.card{padding:24px;background:#fff;border-radius:20px;display:grid;gap:12px}.gift-value{font-family:inherit;font-size:34px;font-weight:600;line-height:1.2;letter-spacing:.01em;font-variant-numeric:tabular-nums}.gift-summary{position:relative;padding-right:108px;min-height:180px}.gift-summary img{position:absolute;right:24px;top:24px;width:76px;height:88px;object-fit:cover;border-radius:12px}.gift-summary .recipient{grid-column:1/-1;margin-right:-84px}.body-copy{font-size:15px;line-height:1.8;white-space:pre-line}.demo-note{font-size:12px;line-height:1.7;color:var(--akane)}.review-tools{border-top:1px solid var(--soft);padding-top:16px}.review-tools summary{font-size:12px;color:var(--muted);cursor:pointer;min-height:40px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.thanks .hero{height:220px}.thanks .hero-copy{bottom:26px}.thanks .hero-copy h1{font-size:28px;line-height:1.4}.thanks .eyebrow{margin-bottom:8px}.success-label{color:var(--mori);font-size:13px;display:flex;gap:8px;align-items:center}.success-label span{font-size:24px}.thanks .sheet h1{font-size:28px}.thanks .sheet{gap:16px}.memory{display:flex;gap:16px;align-items:center;padding:20px}.memory strong{display:block;font-size:24px;font-weight:500;margin-top:6px}.farewell{padding:8px 0 20px}.status-icon{font-size:44px;line-height:1.2}.input-label{font-size:14px;display:grid;gap:10px}.input-wrap{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#fff;border:1px solid var(--border);border-radius:12px;min-height:72px}.input-wrap:focus-within{outline:2px solid var(--ink);outline-offset:2px}.input-wrap:has([aria-invalid=true]){border-color:var(--akane)}.input-wrap input{min-width:0;width:100%;border:0;background:transparent;font-size:28px;outline:none;color:var(--ink)}.field-error{color:var(--akane);font-size:13px;line-height:1.6;min-height:21px}.legal-card{display:grid;gap:8px}.legal-card h2{font-size:16px;font-weight:500}dialog{width:min(100% - 24px,440px);max-height:calc(100dvh - 48px);border:0;border-radius:24px;padding:24px;background:var(--washi);color:var(--ink);box-shadow:0 20px 100px #0005}dialog::backdrop{background:#102b2988;backdrop-filter:blur(3px)}dialog[open]{display:grid;gap:16px;animation:arrive .26s var(--ease)}dialog h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:36px;font-weight:500}dialog .button{min-height:60px}.close-dialog{justify-self:start;min-width:48px;min-height:48px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--ink)}.gallery{background:var(--ink);color:#fff;height:calc(100svh - 28px);min-height:580px;display:flex;flex-direction:column}.gallery-header{height:76px;flex:none;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.gallery-header h1{font-family:inherit!important;font-size:16px!important;line-height:1.4}.gallery-header .button{width:auto;border-radius:24px;min-width:76px;font-size:13px}.carousel{flex:1;min-height:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pan-y;outline:none}.carousel::-webkit-scrollbar{display:none}.season-slide{flex:0 0 100%;min-width:0;scroll-snap-align:center;scroll-snap-stop:always;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.season-slide img{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}.credit{position:absolute;bottom:12px;right:12px;font-size:10px;padding:5px 8px;background:#1b2d4ae6;color:#fff}.gallery-bottom{padding:16px 24px max(16px,env(safe-area-inset-bottom));display:grid;gap:14px;flex:none}.season-meta{display:flex;align-items:center;justify-content:space-between}.season-meta strong{font-size:24px;font-weight:500}.season-meta span{font-size:12px}.season-nav{display:grid;grid-template-columns:repeat(4,1fr)}.season-nav button{min-height:48px;border-radius:24px;background:none;color:#fff;font-size:13px;padding:8px}.season-nav button[aria-pressed=true]{background:#fff;color:var(--ink)}.swipe-hint{font-size:12px;text-align:center}.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}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(min-width:700px){body{padding:32px 0}#app{border-radius:24px;overflow:hidden;min-height:844px}.hero{height:350px}.gallery{height:844px;max-height:calc(100dvh - 92px);min-height:660px}}@media(max-width:350px){.brand-name{font-size:12px}.brand-sub{font-size:9px}.roof{width:26px;height:26px}.site-header{gap:8px}.lang-button{min-width:98px;padding:8px 12px}.sheet,.content{padding-left:20px;padding-right:20px}.amounts{gap:8px}.amount-choice{font-size:15px}.hero-copy,.photo-hint{left:20px;right:20px}.gift-summary{padding-right:92px}.gallery-header{padding:12px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.site-header>a.button{width:auto;min-width:96px;padding:10px 14px;flex:none}
html[lang=ko]{font-family:'Noto Sans KR','Noto Sans JP',system-ui,sans-serif}html[lang=zh-Hans]{font-family:'Noto Sans SC','Noto Sans JP',system-ui,sans-serif}html[lang=zh-Hant]{font-family:'Noto Sans TC','Noto Sans JP',system-ui,sans-serif}
h1:focus{outline:none}
.view h1:focus{outline:none}
@media(min-width:700px){#app,main{min-height:0}}
.survey-field{display:grid;gap:6px}
.survey-select{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--ink);font-size:15px;appearance:auto}
