@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&family=Noto+Serif+JP:wght@500;600;700;800&display=swap');
:root{--navy:#0a1d30;--deep:#061321;--gold:#d8b779;--paper:#f4f6f8;--ink:#1d3043;--line:#d7dfe6;--muted:#647183}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;font-family:'Noto Sans JP',sans-serif;background:var(--deep);color:white;-webkit-font-smoothing:antialiased}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #4589cd;outline-offset:4px}header{max-width:1320px;margin:auto;padding:32px 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff19}.brand{text-decoration:none;font-family:'Noto Serif JP',serif;font-size:27px;font-weight:800;letter-spacing:.12em}.brand span{font-size:11px;letter-spacing:.05em;margin-left:10px}.header-link{font-size:13px;text-decoration:none;display:flex;gap:30px;align-items:center}.header-link span{font-size:24px;color:var(--gold)}.hero{max-width:1320px;min-height:700px;display:grid;grid-template-columns:1.15fr 1fr;margin:auto;overflow:hidden}.hero-copy{padding:64px 0 64px 70px;position:relative;z-index:2}.edition{font-size:13px;letter-spacing:.12em;color:var(--gold);margin:0 0 28px}h1{font-family:'Noto Serif JP',serif;font-size:clamp(48px,4.8vw,72px);font-weight:600;line-height:1.55;letter-spacing:.04em;margin:0 0 18px}.hero-sub{font-size:20px;letter-spacing:.06em}.intro{font-size:14px;line-height:2.2;color:#c5d0dc;margin:28px 0 34px}.button{min-height:60px;padding:18px 25px;text-decoration:none;display:inline-flex;align-items:center;justify-content:space-between;gap:45px;border:0;font-weight:700;font-size:15px;border-radius:3px}.button span{font-size:23px;line-height:1}.gold{background:var(--gold);color:#122233}.gold:hover{background:#ead0a1}.button:disabled{opacity:.6;cursor:wait}.small{font-size:11px;line-height:1.9;color:#9cacbb}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;min-height:600px}.orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 25%,#d4b775 0,#7d6d45 25%,#203a4c 57%,#061321 76%);box-shadow:-25px -12px 60px #d8b77912,inset 1px 1px 0 #fff4}.orb-a{width:390px;height:390px;left:10px;top:110px}.orb-b{width:110px;height:110px;right:30px;bottom:115px}.orbit{position:absolute;width:530px;height:270px;border:1px solid #d8b77966;border-radius:50%;transform:rotate(-35deg);left:-50px;top:190px}.orbit-two{transform:rotate(55deg);width:540px;height:300px;left:-60px;top:180px;opacity:.4}.art-date{position:relative;z-index:1;font-size:130px;font-weight:400;line-height:.92;letter-spacing:-.08em;margin-top:-80px;color:#f0e5d0}.art-date span{display:block;margin-left:85px}.art-date small{font-size:13px;letter-spacing:.07em;display:block;text-align:right;margin-top:24px}.art-caption{position:absolute;left:30px;bottom:65px;font-family:'Noto Serif JP',serif;font-size:20px;line-height:1.9;color:#d9c5a3}.offer{max-width:1180px;margin:0 auto 100px;background:#122c42;display:grid;grid-template-columns:1.45fr 1fr;padding:48px 55px;border-top:2px solid var(--gold);gap:40px}.offer-label{font-size:13px;color:#d7c49f;margin:0 0 18px}.offer h2{font-family:'Noto Serif JP',serif;font-size:27px;font-weight:500;line-height:1.8;margin:0}.offer strong{font-size:44px;color:var(--gold);font-weight:600}.offer-detail{padding-left:30px;border-left:1px solid #ffffff20;font-size:14px;line-height:1.9}.offer-detail hr{border:0;border-top:1px solid #ffffff20;margin:19px 0}.offer-detail b{font-size:24px;font-weight:500;margin-left:10px}.offer-detail span{font-size:12px;color:#aabac7}.details{max-width:1080px;display:grid;grid-template-columns:1fr 1.5fr;gap:80px;margin:0 auto 100px;padding:0 30px}.section-title>span{font-size:12px;color:var(--gold)}.section-title h2{font-family:'Noto Serif JP',serif;font-size:36px;line-height:1.8;font-weight:500}.schedule>div{display:flex;gap:42px;align-items:baseline;padding:17px 0;border-bottom:1px solid #ffffff20}.schedule time{font-size:24px;color:var(--gold);font-weight:400}.schedule p{font-size:14px;margin:0}.venue{padding-top:30px}.label{font-size:12px;color:var(--gold)}.venue h3{font-size:20px;font-weight:500;letter-spacing:.04em}.venue>p{line-height:1.9;font-size:14px;color:#bac7d2}.venue a{font-size:13px;color:var(--gold);text-underline-offset:5px}.entry{background:var(--paper);color:var(--ink);padding:78px 24px 85px}.entry-heading{max-width:800px;margin:0 auto 35px}.entry-heading .edition{color:#8c682a;margin:0 0 14px}.entry-heading h2{font-family:'Noto Serif JP',serif;font-size:40px;letter-spacing:.04em;margin:0 0 20px}.entry-heading>p:last-child{font-size:13px;line-height:1.9;color:var(--muted)}form#form{max-width:800px;background:white;margin:auto;border:1px solid #e4e8ec;border-radius:8px;padding:32px 42px 35px;box-shadow:0 15px 60px #14283e06}.form-top{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:0 0 22px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:27px}.text-button{background:none;border:0;color:#647183;text-decoration:underline;font-size:11px;padding:5px;white-space:nowrap}fieldset{padding:0;border:0;margin:0 0 35px;min-width:0}legend{font-size:18px;font-weight:700;margin-bottom:22px}label{font-size:13px;font-weight:500;display:block}em,.optional{font-style:normal;font-size:10px;margin-left:7px;padding:2px 5px;border-radius:3px;font-weight:400}em{color:#865614;background:#fbf2df}.optional{color:#83909c;background:#f2f4f6}.choices{display:grid;gap:12px}.choice{position:relative;display:flex;gap:12px;align-items:center;border:1px solid var(--line);padding:20px;border-radius:5px;cursor:pointer}.choice:has(input:checked){border-color:#b69a61;background:#fcf9f2;box-shadow:inset 0 0 0 1px #b69a61}.choice input{width:18px;height:18px;accent-color:#8e6c31;flex-shrink:0}.choice span{flex:1}.choice b{font-size:14px;font-weight:600}.choice span small{display:block;font-size:11px;color:var(--muted);margin-top:7px}.choice strong{font-size:23px;white-space:nowrap;font-weight:600}.choice strong small{font-size:12px;margin-left:3px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 22px}.field-grid .full{grid-column:1/-1}input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;display:block;background:white;border:1px solid #cfd7df;border-radius:4px;color:var(--ink);margin-top:10px;padding:13px 12px;font-size:15px;min-height:48px}input::placeholder,textarea::placeholder{color:#a0a9b3;font-size:13px}select{appearance:auto}textarea{resize:vertical}.field-help{color:var(--muted);font-size:12px;line-height:1.9;margin:-5px 0 24px}.check{display:flex;gap:12px;line-height:1.9;align-items:flex-start;font-size:12px}.check input{width:17px;height:17px;flex-shrink:0;margin:3px 0 0;accent-color:#9e7d43}.check a{color:#57748c;text-underline-offset:3px}#guest-fields>.check{margin-top:25px}.consent{border-top:1px solid var(--line);padding-top:25px}.consent .small{color:var(--muted);margin-left:29px}.submit-area{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);margin-top:28px;padding-top:25px}.submit-area>div>span{display:block;font-size:11px;color:var(--muted)}.submit-area strong{font-size:29px;display:block;margin-top:3px}.submit-area small{font-size:10px;color:var(--muted)}.submit-area .button{min-width:290px}.submit-help{font-size:11px;color:var(--muted);line-height:1.9;text-align:right;margin:16px 0 0}.draft-note{max-width:800px;margin:20px auto 0;font-size:11px;line-height:1.9;color:var(--muted)}.honey{display:none}#error{padding:15px;border:1px solid #dfb1ac;color:#a13c32;background:#fff7f6;font-size:13px;line-height:1.9}footer{max-width:1180px;margin:auto;padding:55px 30px 30px;display:grid;grid-template-columns:1fr 1fr;gap:30px;font-size:12px;color:#afbdcb}.footer-brand{font-family:'Noto Serif JP',serif;font-size:23px;color:var(--gold)}footer p{margin:0 0 10px}footer nav{display:flex;gap:20px;flex-wrap:wrap;font-size:11px}footer small{text-align:right;font-size:10px;color:#76899c}[hidden]{display:none!important}.simple{min-height:100vh;background:var(--paper);color:var(--ink)}.simple main{max-width:860px;margin:auto;padding:65px 25px}.simple header{color:white;background:var(--deep);max-width:none}.simple h1{font-size:36px}.simple h2{font-size:20px;margin-top:35px}.simple p{font-size:14px;line-height:2}.simple .button{margin:20px 0}.success-mark{font-size:40px;color:#8c6c30;margin-bottom:15px}.panel{background:white;border:1px solid var(--line);padding:35px;border-radius:8px}.panel form{max-width:420px}.panel button{margin-top:20px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:1000px;font-size:12px}td,th{padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}th{background:#e8edf2}td small{display:block;color:var(--muted)}.admin main{max-width:1450px}.admin-tools{display:flex;gap:15px;flex-wrap:wrap;align-items:center;margin:20px 0}.admin-tools input,.admin-tools select{width:auto;margin:0;flex:1;min-width:180px}.admin-tools .button{margin:0;min-height:48px;padding:12px 20px}.stats{font-size:16px!important}.badge{font-size:11px;padding:4px 8px;background:#e8f3ec;color:#2f6c46;border-radius:3px}.badge.pending{background:#fff1d5;color:#866428}
@media(max-width:1000px){header{padding:25px 30px}.hero-copy{padding-left:40px}.hero-art{transform:scale(.85);transform-origin:left center}.offer{margin:0 30px 80px;padding:35px;gap:25px}.details{gap:40px}.offer h2{font-size:23px}.offer strong{font-size:39px}}@media(max-width:680px){header{padding:20px}.brand{font-size:22px}.brand span{font-size:9px;margin-left:5px}.header-link{font-size:11px;gap:10px}.hero{position:relative;display:block;min-height:670px}.hero-copy{padding:45px 25px 38px}.edition{font-size:11px;margin-bottom:23px}h1{font-size:45px;line-height:1.6;letter-spacing:.01em}.hero-sub{font-size:16px;letter-spacing:0}.intro{font-size:13px;margin:25px 0;line-height:2.2}.hero-copy .button{min-width:245px}.hero-copy .small{font-size:10px;max-width:250px}.hero-art{position:absolute;right:-135px;top:150px;width:330px;min-height:470px;opacity:.38;transform:scale(.7);z-index:0;pointer-events:none}.hero-copy{z-index:1}.art-date{display:none}.art-caption{display:none}.offer{display:block;margin:0 18px 65px;padding:27px 23px}.offer h2{font-size:21px}.offer strong{font-size:38px}.offer-label{font-size:11px}.offer-detail{margin-top:25px;border-left:0;border-top:1px solid #ffffff20;padding:15px 0 0;font-size:13px}.offer-detail hr{display:none}.offer-detail p{margin:10px 0}.offer-detail p:first-child br{display:none}.details{display:block;margin-bottom:65px;padding:0 25px}.section-title h2{font-size:28px;margin:15px 0 28px}.section-title h2 br{display:none}.schedule>div{gap:35px}.schedule time{font-size:23px}.venue h3{font-size:18px}.entry{padding:50px 16px}.entry-heading{padding:0 8px}.entry-heading h2{font-size:30px}.entry-heading>p:last-child{font-size:11px}.entry-heading>p:last-child br{display:none}form#form{padding:23px 18px}.form-top{font-size:10px;align-items:flex-start;gap:8px;line-height:1.7}.text-button{font-size:10px;padding:0}.field-grid{grid-template-columns:1fr;gap:22px}.field-grid .full{grid-column:auto}legend{font-size:17px}.choice{padding:17px 12px;gap:9px;flex-wrap:wrap}.choice b{font-size:12px}.choice span small{font-size:10px}.choice strong{font-size:19px;margin-left:auto}.choice strong small{font-size:11px}.choice input{width:16px;height:16px}.submit-area{display:block}.submit-area>div{margin-bottom:20px}.submit-area strong{font-size:29px}.submit-area .button{width:100%;min-width:0}.submit-help{text-align:left}.check{font-size:11px}.consent .small{font-size:10px;margin-left:0}.draft-note{font-size:10px;padding:0 7px}footer{padding:38px 25px;display:block}.footer-brand{font-size:22px;margin-bottom:25px}footer nav{margin:25px 0;gap:15px}footer small{display:block;text-align:left}.simple header .brand{font-size:20px}.simple main{padding:40px 18px}.simple h1{font-size:28px}.panel{padding:23px}.admin-tools{display:grid;grid-template-columns:1fr}.admin-tools input,.admin-tools select{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.add-guest{display:block;width:100%;margin:25px 0;padding:16px;border:1px dashed #a38a59;background:#fcf9f2;color:#795d2c;border-radius:4px;font-size:13px;font-weight:600}.add-guest:hover{background:#f6eddb}.extra-person{margin-top:30px;border-top:1px solid var(--line);padding-top:25px;animation:field-appear .3s ease-out both}.extra-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.extra-heading h3{font-size:15px;margin:0}.hero-copy{animation:copy-appear .85s cubic-bezier(.2,.7,.3,1) both}.orb-a{animation:orb-drift 14s ease-in-out infinite alternate}.orb-b{animation:small-orb-drift 11s ease-in-out infinite alternate}.orbit-one{animation:orbit-drift 22s ease-in-out infinite alternate}.button{transition:background-color .2s,box-shadow .2s,transform .2s}.button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0002}.button:active{transform:translateY(0)}@keyframes copy-appear{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes orb-drift{from{transform:translate(0,0)}to{transform:translate(13px,-18px)}}@keyframes small-orb-drift{from{transform:translate(0,0)}to{transform:translate(-10px,15px)}}@keyframes orbit-drift{from{transform:rotate(-35deg)}to{transform:rotate(-23deg)}}@keyframes field-appear{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:680px){.extra-heading{align-items:flex-start}.extra-heading h3{font-size:13px}.extra-heading .text-button{font-size:10px;white-space:normal}}@media(prefers-reduced-motion:reduce){.hero-copy,.orb,.orbit,.extra-person{animation:none!important}.button{transition:none}.button:hover{transform:none}}
@media(max-width:680px){h1{font-size:clamp(34px,10.9vw,45px)}.section-title h2 br{display:block}.offer h2{font-size:clamp(16px,4.8vw,21px)}input:not([type=radio]):not([type=checkbox]),select,textarea{font-size:16px}}
