:root{--cream:#F7F5F1;--cream-card:#FCFAF7;--black:#11110F;--ink:#2E2E2A;--ink-2:#3E4035;--muted:#746F66;--muted-2:#B9B2A6;--line:#D8D2C6;--line-dark:#D8CBB8;--gold:#B89B6E;--gold-soft:#C9B79C;--gold-number:#C2A877;--tan:#E7DDC9;--tan-hero:#EEE8DE;--tan-tab:#EFE7D8;--btn-label:#F8F6F0;--ob-heading:#F4F1EA;--ob-sub:#9C968B;--serif:"Noto Serif JP",serif;--sans:"Noto Sans JP",sans-serif}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background:var(--cream)}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;display:flex;justify-content:center}.device{width:100%;max-width:412px;min-height:100vh;min-height:100dvh;position:relative;background:var(--cream);overflow-x:hidden}button{font-family:var(--sans)}.screen{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.screen--dark{background:var(--black);color:var(--ob-heading)}.statusbar{height:54px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font-weight:700;font-size:17px}.statusbar .clock{letter-spacing:.5px}.statusbar .indicators{display:flex;gap:8px}.statusbar .indicators span{width:26px;height:13px;border:1.6px solid;border-radius:3px;opacity:.9}.body{flex:1 1 auto;display:flex;flex-direction:column;padding:24px 22px}.body--splash{padding-top:96px}.body--ob,.body--splash{justify-content:space-between}.body--ob{padding:30px 24px 26px}.body--flow{justify-content:space-between}.body--home{padding:18px 22px 0}.body.has-tab{padding-bottom:96px}.spacer{flex:1 1 auto}.eyebrow{font-size:13px;letter-spacing:6px;color:var(--muted);text-align:center;font-weight:400}.eyebrow--gold{color:var(--gold-number);letter-spacing:8px}.title-serif{font-family:var(--serif);font-weight:500;color:var(--ink);text-align:center}.h-display{font-size:30px;line-height:1.5}.h-page{font-size:27px;line-height:1.4}.sub{font-size:13px;line-height:1.75}.para,.sub{color:var(--muted);text-align:center}.para{font-size:12px;line-height:1.9}.logo{display:block;color:var(--ink-2)}.logo--lg{width:240px;height:auto}.logo--sm{width:150px;height:auto}.btn{border:none;cursor:pointer;width:100%;font-size:13px}.btn-primary{height:52px;background:var(--ink-2);color:var(--btn-label);border-radius:3px;font-weight:600;letter-spacing:.8px}.btn-primary:active{opacity:.9}.btn-outline-light{background:transparent;color:var(--ob-heading);border:1px solid var(--line-dark);border-radius:3px;font-weight:500}.btn-light,.btn-outline-light{height:50px;letter-spacing:1px}.btn-light{background:var(--ob-heading);color:var(--black);border:none;border-radius:3px;font-weight:600}.btn-light:disabled{opacity:.6}.btn-outline{height:52px;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:3px;font-weight:500;letter-spacing:.8px}.btn-row{display:flex;gap:12px}.btn-row .btn{flex:1 1}.support-main{flex:1 1 auto;justify-content:center;text-align:center;gap:22px;padding:0 6px}.support-card,.support-main{display:flex;flex-direction:column;align-items:center}.support-card{border:1px solid var(--line);border-radius:10px;background:var(--cream-card);padding:26px 24px;gap:8px;width:100%}.support-card .s-cap{font-size:13px;color:var(--muted)}.support-phone{font-family:var(--serif);font-size:30px;color:var(--ink);letter-spacing:1px;text-decoration:none;display:inline-block}.support-hours{font-size:12px;color:var(--muted-2)}.support-bottom{display:flex;flex-direction:column;gap:12px}.btn-edit{width:64px;height:30px;background:var(--cream-card);border:1px solid var(--line);border-radius:3px;color:var(--ink);font-size:12px;cursor:pointer}.foot{margin-top:auto}.body>.foot{margin-top:20px}.splash-stack{gap:32px}.splash-head,.splash-stack{display:flex;flex-direction:column;align-items:center}.splash-head{gap:12px}.splash-sub{font-size:16px;color:var(--muted);letter-spacing:1px}.ob-main{gap:46px;margin-top:10px}.ob-copy,.ob-main{display:flex;flex-direction:column;align-items:center}.ob-copy{gap:18px}.ob-heading{font-family:var(--serif);font-weight:500;font-size:32px;line-height:1.4;color:var(--ob-heading);text-align:center;hanging-punctuation:allow-end;white-space:nowrap}.bl-pe{display:inline-block;margin-right:-.42em}.ob-sub{font-size:14px;line-height:1.9;color:var(--ob-sub);text-align:center}.ob-illust{width:190px;height:auto;opacity:.95}.ob-bottom{flex-direction:column;gap:24px}.dots,.ob-bottom{display:flex;align-items:center}.dots{gap:10px}.dots i{width:7px;height:7px;border-radius:50%;background:#57544e;display:block}.dots i.on{width:22px;border-radius:4px;background:var(--ob-heading)}.body--vow{justify-content:space-between;padding:40px 28px 30px}.vow-main{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:22px}.vow-eyebrow{font-size:12px;letter-spacing:6px;color:var(--gold-number)}.vow-heading{font-family:var(--serif);font-weight:500;font-size:27px;line-height:1.6;color:var(--ob-heading);hanging-punctuation:allow-end}.vow-sub{font-size:14px;line-height:2;color:var(--ob-sub)}.vow-bottom{display:flex;flex-direction:column;gap:14px}.ready-guide{width:100%;max-width:344px;height:auto;margin-top:8px}.field{margin-top:14px}.field-label{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:8px;display:block}.field-opt{font-weight:400;font-size:12px;color:var(--muted-2);margin-left:6px}.input,textarea.input{width:100%;background:var(--cream-card);border:1px solid var(--line);border-radius:4px;padding:15px 16px;font-family:var(--sans);font-size:15px;color:var(--ink);outline:none}.input::placeholder{color:#b6b0a4}.input:focus{border-color:var(--gold-soft)}textarea.input{resize:none}.chips{display:flex;gap:12px;margin-top:18px;justify-content:center}.chip{background:transparent;border:1px solid var(--line);border-radius:4px;padding:11px 16px;font-size:14px;color:var(--ink);cursor:pointer}.chip:active{background:var(--tan)}.photo-box{width:100%;aspect-ratio:16/9;background:var(--cream-card);border:1px solid var(--line);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);cursor:pointer;background-size:cover;background-position:50%;margin-top:6px}.photo-box .ph-icon{color:var(--gold)}.photo-box.has-img{color:transparent}.photo-retake{display:block;margin:10px auto 0;background:none;border:none;cursor:pointer;font-size:13px;color:var(--gold);text-decoration:underline;text-underline-offset:3px}.crop-modal{position:fixed;inset:0;z-index:100;background:#11110F;display:flex;flex-direction:column}.crop-head{color:var(--ob-heading);text-align:center;font-size:15px;padding:18px 0 10px;letter-spacing:1px}.crop-area{position:relative;flex:1 1 auto}.crop-controls{padding:18px 22px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px;background:#11110F}.crop-zoom{width:100%;accent-color:var(--gold)}.crop-actions{display:flex;gap:12px}.crop-actions .btn{flex:1 1}.photo-box.has-img .ph-icon,.photo-box.has-img span{display:none}.box-note{text-align:center;font-size:12px;color:var(--gold);margin:8px 0 14px;letter-spacing:.3px}.options{display:flex;flex-direction:column;gap:12px;margin-top:8px}.opt{display:flex;align-items:center;gap:18px;background:var(--cream-card);border:1px solid var(--line);border-radius:6px;padding:16px;cursor:pointer;text-align:left}.opt.sel{background:var(--tan);border-color:var(--gold-soft)}.opt .radio{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--muted-2);flex:0 0 auto}.opt.sel .radio{border-color:var(--ink);background:radial-gradient(var(--ink) 45%,transparent 47%)}.opt .box-icon{color:var(--gold);flex:0 0 auto}.opt-text .opt-name{font-size:17px;font-weight:700;color:var(--ink)}.opt-text .opt-meta{font-size:14px;color:var(--muted);margin-top:6px}.opt-text .opt-price{font-size:13px;color:var(--muted);margin-top:4px}.segment{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-top:6px}.segment button{flex:1 1;padding:16px 0;background:var(--cream-card);border:none;font-size:14px;color:var(--muted);cursor:pointer}.segment button.on{background:var(--tan);color:var(--ink-2);font-weight:600}.cal-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0 4px}.cal-month{font-size:19px;color:var(--ink)}.cal-nav{display:flex;gap:4px}.cal-nav button{background:none;border:none;cursor:pointer;color:var(--ink);padding:4px;display:flex}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-row-gap:2px;row-gap:2px}.cal-grid .wd{text-align:center;font-size:13px;color:var(--muted);padding:6px 0}.cal-cell{display:flex;align-items:center;justify-content:center;height:38px}.cal-cell button{width:36px;height:36px;border-radius:50%;border:none;background:none;cursor:pointer;font-size:15px;color:var(--ink)}.cal-cell button.sel{background:var(--ink-2);color:#fff}.cal-opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}.cal-opt{width:100%;background:var(--cream-card);border:1px solid var(--line);border-radius:6px;padding:15px 0;font-size:15px;color:var(--ink);cursor:pointer}.cal-opt.on{background:var(--tan);border-color:var(--gold-soft)}.date-pill{background:var(--tan);border:1px solid var(--gold-soft);border-radius:6px;padding:15px;text-align:center;font-size:16px;color:var(--ink-2);margin-top:6px}.slots{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:8px}.slot{background:var(--cream-card);border:1px solid var(--line);border-radius:6px;padding:14px 0;text-align:center;font-size:15px;color:var(--ink);cursor:pointer;line-height:1.4}.slot small{display:block;font-size:13px;color:var(--muted)}.slot.sel{background:var(--tan);border-color:var(--gold-soft);color:var(--ink-2)}.confirm-card{border:1px solid var(--line);border-radius:8px;padding:4px 22px;margin-top:8px}.confirm-row{display:flex;gap:16px;align-items:flex-start;padding:17px 0}.confirm-row+.confirm-row{border-top:1px solid #ece7dd}.confirm-row .c-icon{color:var(--gold);flex:0 0 auto;margin-top:2px}.confirm-row .c-main{flex:1 1 auto;min-width:0}.confirm-row .c-label{font-size:16px;font-weight:700;color:var(--ink)}.confirm-row .c-value{font-size:14px;color:var(--muted);margin-top:6px}.confirm-row .c-edit{flex:0 0 auto;align-self:center;background:none;border:none;cursor:pointer;color:var(--gold);font-size:13px;padding:4px 2px;text-decoration:underline;text-underline-offset:3px}.home-logo{margin:8px 0 18px}.hero-card{background:var(--tan-hero);border:1px solid var(--line);border-radius:4px;aspect-ratio:16/9;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background-size:cover;background-position:50%}.hero-card .hero-label{font-family:var(--serif);font-size:18px;line-height:1.55;color:var(--ink)}.hero-card.has-img .hero-label{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5)}.countdown{text-align:center;margin:24px 0}.countdown .cd-label{font-size:12px;color:var(--muted)}.countdown .cd-value{font-family:var(--serif);font-size:38px;color:var(--ink);letter-spacing:2px;margin:6px 0}.countdown .cd-date{font-size:12px;color:var(--muted-2)}.task-list{display:flex;flex-direction:column}.task{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e6e1d7}.task:last-child{border-bottom:none}.task .t-title{font-size:15px;font-weight:700;color:var(--ink)}.task .t-sub{font-size:13px;color:var(--muted);margin-top:5px}.task .t-locked{font-size:12px;color:var(--muted-2);flex:0 0 auto;white-space:nowrap}.tabbar{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);width:min(368px,calc(100vw - 36px));z-index:50;display:flex;justify-content:space-between;background:rgba(252,250,247,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #e1dcd2;border-radius:29px;padding:6px 10px;box-shadow:0 10px 26px rgba(0,0,0,.1)}.tab{flex:1 1;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0;border-radius:23px;color:var(--muted-2);font-size:10px}.tab.on{background:var(--tan-tab);color:var(--ink-2)}.page-head{margin:8px 0 18px}.page-title{font-family:var(--serif);font-size:24px;color:var(--ink)}.page-sub{font-size:13px;color:var(--muted);margin-top:6px}.notif-list{display:flex;flex-direction:column}.notif{display:flex;gap:14px;align-items:flex-start;padding:18px 4px;cursor:pointer;text-align:left;background:none;border:none;border-bottom:1px solid #e6e1d7;width:100%}.notif .n-icon{width:38px;height:38px;border-radius:50%;background:var(--tan-hero);color:var(--gold);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.notif .n-body{flex:1 1}.notif .n-title{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px}.notif .n-text{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.6}.notif .n-time{font-size:11px;color:var(--muted-2);margin-top:6px}.notif .n-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:0 0 auto}.notif.read{opacity:.72}.empty-note{text-align:center;color:var(--muted-2);font-size:13px;padding:60px 0}.set-group{margin-top:24px}.set-group-title{font-size:12px;letter-spacing:1px;color:var(--muted-2);margin-bottom:8px;padding-left:2px}.set-card{background:var(--cream-card);border:1px solid var(--line);border-radius:8px;overflow:hidden}.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;width:100%;background:none;border:none;cursor:pointer;text-align:left}.set-row+.set-row{border-top:1px solid #ece7dd}.set-row .s-main{display:flex;flex-direction:column;gap:4px}.set-row .s-label{font-size:15px;color:var(--ink);font-weight:500}.set-row .s-value{font-size:13px;color:var(--muted)}.set-row .s-chev{color:var(--muted-2);flex:0 0 auto}.set-row.static{cursor:default}.switch{width:46px;height:28px;border-radius:16px;background:var(--line);position:relative;flex:0 0 auto;transition:background .2s;border:none;cursor:pointer}.switch.on{background:var(--ink-2)}.switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .2s}.switch.on i{left:21px}.danger-row .s-label{color:#9a4b3f}.app-version{text-align:center;font-size:11px;color:var(--muted-2);margin:26px 0 6px}.farewell{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:22px;padding:20px 6px}.farewell .fw-eyebrow{font-size:12px;letter-spacing:5px;color:var(--gold-number)}.farewell .fw-title{font-family:var(--serif);font-size:28px;line-height:1.5;color:var(--ink)}.farewell .fw-photo{width:150px;height:150px;border-radius:50%;background:var(--tan-hero);border:1px solid var(--line);background-size:cover;background-position:50%;margin:6px 0}.farewell .fw-text{font-size:13px;line-height:1.9;color:var(--muted)}.farewell .fw-name{font-family:var(--serif);font-size:18px;color:var(--ink)}