:root{--bg:#f5f7f3;--ink:#263f36;--muted:#748279;--accent:#386552;--border:#dfe6df}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 system-ui,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:240px;background:#fff;border-right:1px solid var(--border);padding:32px 22px;display:flex;flex-direction:column}.logo{font-size:25px;font-weight:800;text-decoration:none;color:var(--ink)}.logo span{color:#92aa71;margin-left:8px}aside>p,.tiny{font-size:12px;color:var(--muted)}nav{margin-top:28px;display:grid;gap:8px}nav button{text-align:left;border:0}nav .active{background:#e9f0e5;color:var(--accent)}.aside-foot{margin-top:auto}main{margin-left:240px}header{height:80px;padding:20px 40px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}section{max-width:1220px;padding:40px;margin:auto}h1{font:500 36px/1.4 Georgia,serif;margin:10px 0 16px}h2{font-size:21px}h3{margin:12px 0}p{margin:10px 0}.eyebrow{letter-spacing:2px;font-size:11px;color:var(--accent)}.muted{color:var(--muted)}button,.button{background:white;border:1px solid var(--border);color:var(--ink);border-radius:9px;padding:10px 16px;cursor:pointer;font:inherit;text-decoration:none;display:inline-block}button:hover{background:#edf3e9}button:disabled{opacity:.5;cursor:default}.primary{background:var(--accent);color:white;border-color:var(--accent)}.danger{color:#ac493a}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:8px;padding:10px;width:100%;background:white;color:var(--ink)}textarea{min-height:90px;resize:vertical}label{display:block;font-size:13px;margin:12px 0}label input,label textarea,label select{margin-top:5px}label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}input[type=checkbox]{width:auto}.panel,.banner{border:1px solid var(--border);border-radius:16px;padding:24px;margin:18px 0;background:#fff}.banner{background:#eaf0df}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}.toolbar,.split,.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.split{justify-content:space-between}.inline-form>input{flex:1;min-width:110px}.badge{font-size:11px;background:#edf3e8;padding:5px 10px;border-radius:20px;color:var(--accent)}.kpi{font-size:34px;font-weight:600}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 8px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.vote{min-width:45px}.vote[data-value="○"]{color:#386552;background:#e7f0df}.timeline article{padding:14px 0;border-bottom:1px solid var(--border)}.timeline time{color:var(--accent)}.album{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.photo img{width:100%;height:210px;object-fit:cover;border-radius:12px}.invite{background:#faf8f1;text-align:center;border-radius:16px;overflow:hidden}.invite article{padding:35px;white-space:pre-line}.invite h1{font-size:44px}dialog{width:min(650px,95vw);max-height:90vh;overflow:auto;border:0;border-radius:18px;padding:28px}dialog::backdrop{background:#203b3266}#close{float:right}#notice{display:none;position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#263f36;color:white;padding:14px 22px;border-radius:12px;z-index:10}.card{display:block;text-align:left}.print-only{display:none}@media(max-width:850px){aside{position:relative;width:auto;padding:16px}nav{display:flex;overflow:auto;margin-top:12px}nav button{white-space:nowrap}.aside-foot{display:flex;gap:16px;align-items:center}main{margin:0}header{padding:16px;height:65px}section{padding:20px}.two-col,.grid{grid-template-columns:1fr}.album{grid-template-columns:repeat(2,1fr)}h1{font-size:29px}}@media print{aside,header,.no-print,#notice,dialog{display:none!important}main{margin:0}section{padding:0}.panel,.banner{border:0;padding:8px;background:white}.print-only{display:block}article,tr{break-inside:avoid}h2,h3{break-after:avoid}.two-col{display:block}body{background:white;color:black}@page{size:A4;margin:15mm}}

.qr{width:150px;height:150px;display:block;margin:16px 0} @media print{a[href^="mailto"],.no-print{display:none!important}}

.editor-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(320px,1fr);gap:26px;align-items:start}.editor-controls{padding:24px}.template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px}.template-card{padding:10px;text-align:left}.template-card span{display:block;height:42px;border-radius:6px;margin-bottom:10px}.template-card strong,.template-card small{display:block}.template-card small{font-size:11px;color:#728174;margin-top:5px}.editor-block{border-top:1px solid #dce4dc;padding:20px 0}.editor-preview{position:sticky;top:20px}.editor-preview .invite{margin-top:16px;padding:0;overflow:hidden;background:white;box-shadow:0 12px 36px #263d3010}.invitation-page{min-height:600px;color:var(--invite-accent)}.font-serif{font-family:Georgia,"Yu Mincho",serif}.font-sans{font-family:system-ui,sans-serif}.invite-section{text-align:center;padding:32px 26px;border-bottom:1px solid #e9eee8}.invite-section h2{color:var(--invite-accent);font-size:25px;margin:14px 0}.invite-section p{white-space:pre-wrap;line-height:1.9;color:#4e5b52}.invite-section-label{font-family:system-ui,sans-serif;font-size:10px;letter-spacing:.2em}.invite-cover{background:color-mix(in srgb,var(--invite-accent) 9%,white);padding:65px 28px}.invite-cover h2{font-size:38px}.invite-detail{font-weight:600}.invite-empty{text-align:center;padding:100px 26px}@media(max-width:1000px){.editor-layout{grid-template-columns:1fr}.editor-preview{position:static}}
.editor-layout>section{margin:18px 0;max-width:none;width:100%}.editor-layout>.editor-preview{padding:0}.editor-layout input[type=color]{height:44px;padding:4px}
.template-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.template-grid{max-height:340px;overflow:auto;padding-right:4px;grid-template-columns:repeat(2,minmax(0,1fr))}.template-card[hidden]{display:none}.template-card .template-swatch{height:88px;background:var(--swatch);color:white;display:flex;align-items:center;justify-content:center;padding:10px;overflow:hidden;position:relative}.template-swatch i{font-style:normal;font-size:12px;text-align:center;line-height:1.4}.swatch-classic{border:5px double #ffffff99}.swatch-botanical{border-radius:30px 3px!important;background:linear-gradient(140deg,var(--swatch),#93aa80)!important}.swatch-japanese i{writing-mode:vertical-rl;font-family:serif}.swatch-minimal{background:#fff!important;color:var(--swatch)!important;border:1px solid var(--swatch)}.swatch-sunset{background:linear-gradient(160deg,var(--swatch),#ebcbae)!important}.swatch-ticket{border:2px dashed white;border-radius:0!important}.swatch-dark{background:#27312e!important;color:#e7cf9e!important}.swatch-postcard{border:7px solid #f5ead6;transform:rotate(-2deg)}
.style-classic .invite-cover{border:10px double var(--invite-accent);margin:18px;background:white}.style-botanical .invite-cover{border-radius:90px 0 90px 0;margin:16px;background:linear-gradient(145deg,#eef4e9,#d9e8d5)}.style-botanical .invite-section-label:before,.style-botanical .invite-section-label:after{content:' ❧ ';font-size:18px}.style-japanese .invite-cover{border-top:8px solid var(--invite-accent);background:#fbf6ed}.style-japanese .invite-cover h2{writing-mode:vertical-rl;margin:25px auto;max-height:300px;font-size:32px}.style-minimal .invite-section{text-align:left;background:white;border-bottom:1px solid var(--invite-accent)}.style-minimal .invite-cover h2{font-size:36px;font-weight:800}.style-sunset .invite-cover{background:linear-gradient(155deg,color-mix(in srgb,var(--invite-accent) 20%,white),#fff0dd)}.style-ticket .invite-section{border-bottom:2px dashed color-mix(in srgb,var(--invite-accent) 40%,white);margin:0 15px}.style-ticket .invite-cover{border:2px dashed var(--invite-accent);margin:18px}.style-dark{background:#27312e;color:#e7cf9e}.style-dark .invite-section,.style-dark .invite-cover{background:transparent;border-color:#ffffff20}.style-dark .invite-section h2,.style-dark .invite-section p{color:#f2e7d3}.style-postcard .invite-cover{border:12px solid #efe6d5;margin:16px;background:#faf7ef}.style-postcard .invite-cover h2{font-style:italic}.style-postcard .invite-section-label{letter-spacing:.3em}
/* Invitation studio: rich text, imagery and page layouts */
.rich-layout{grid-template-columns:minmax(340px,1fr) minmax(350px,1.08fr)}
.template-drawer,.design-settings{padding:14px 0;border-bottom:1px solid var(--border)}summary{cursor:pointer;font-weight:650;padding:8px 0}.template-photo{position:relative!important;height:110px!important;padding:0!important;overflow:hidden}.template-photo img{width:100%;height:100%;object-fit:cover}.template-photo i{position:absolute;inset:auto 8px 8px;background:#ffffffd9;border-radius:5px;color:#263f36;padding:4px;font-size:11px}.typography-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.typography-grid label{margin:6px 0}.typography-grid input[type=color]{height:40px;padding:4px}.rich-toolbar{display:flex;flex-wrap:wrap;gap:5px;background:#f0f4ee;padding:8px;border-bottom:1px solid var(--border)}.rich-toolbar button{padding:5px 8px;font-size:12px;min-width:28px}.rich-toolbar select{width:135px;font-size:12px;padding:5px}.rich-toolbar input[type=number]{width:65px;font-size:12px;padding:5px}.rich-toolbar input[type=color]{width:35px;height:30px;padding:2px}.rich-box{border:1px solid var(--border);border-radius:9px;overflow:hidden;background:white}.rich-content{min-height:130px;max-height:350px;overflow:auto;padding:16px;outline:none;white-space:pre-wrap;font-size:16px;color:#40544a}.rich-content:focus{box-shadow:inset 0 0 0 2px #809d7566}.rich-content p{margin:6px 0}.rich-content ul,.rich-content ol{padding-left:24px}.image-picker{padding:8px 0}.upload-label{background:#eef3e9;padding:10px;border:1px dashed #9bad95;border-radius:8px}.upload-label input{font-size:12px;border:0;background:transparent;padding:0}.block-actions{margin-bottom:12px}.editor-block{padding:8px 0}.design-page{position:relative;isolation:isolate;overflow:hidden;white-space:normal}.design-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}.design-sections{position:relative}.design-page .invite-section{position:relative;white-space:normal;background-color:transparent}.design-page .invite-copy{position:relative;z-index:1}.design-page .invite-copy h2{overflow-wrap:anywhere;line-height:1.4}.rich-display{color:inherit;line-height:1.85;overflow-wrap:anywhere}.rich-display p{color:inherit;font-size:inherit;line-height:inherit;margin:8px 0;white-space:pre-wrap}.rich-display ul,.rich-display ol{display:inline-block;text-align:left;padding-left:22px}.rich-display blockquote{border-left:3px solid currentColor;padding-left:14px;margin:14px 0}.design-page .photo-cover{min-height:var(--block-image-height);display:flex;align-items:center;justify-content:center;border-radius:0;padding:40px 28px;isolation:isolate}.cover-image,.cover-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.cover-shade{background:#000}.design-page .photo-cover .invite-copy,.design-page .photo-cover h2,.design-page .photo-cover .rich-display,.design-page .photo-cover .invite-section-label{color:white}.block-image{display:block;width:100%;margin:0 0 24px;border-radius:10px}.image-slot{display:grid;place-items:center;min-height:200px;margin-bottom:22px;border:2px dashed var(--invite-accent);background:#ffffff90;font-size:14px}.design-page .invite-section-label{display:inline-block}.design-page .invite-detail{font-size:var(--body-size)}.layout-editorial .invite-section{padding:36px 30px;border-bottom:0}.layout-editorial .invite-copy h2{font-weight:700}.layout-editorial .has-image{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;align-items:center}.layout-editorial .block-image{height:300px!important;margin:0}.layout-split .has-image{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center}.layout-split .has-image:nth-child(even) .block-image{order:2}.layout-split .block-image{margin:0}.layout-gallery .has-image{padding:0}.layout-gallery .block-image{border-radius:0;margin:0}.layout-gallery .has-image .invite-copy{padding:30px}.layout-gallery .photo-cover{min-height:420px}.layout-poster .photo-cover{min-height:500px;border:0}.layout-poster .invite-section-label{letter-spacing:.25em}.layout-poster .invite-copy h2{font-weight:800}.layout-minimal .invite-section{padding:42px 30px;border:0}.layout-minimal .block-image{border-radius:0}.layout-minimal .invite-section-label{letter-spacing:.3em}.design-page.style-dark{color:#efe8d8}.design-page.style-dark .rich-display{color:#efe8d8}.design-page.style-dark .invite-section{border-color:#ffffff25}.editor-preview .invite{max-height:calc(100vh - 110px);overflow:auto}.editor-controls .two-col{grid-template-columns:1fr 1fr}.editor-controls .image-picker select{font-size:12px}
@media(max-width:1100px){.rich-layout{grid-template-columns:1fr}.editor-preview .invite{max-height:none}.typography-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.typography-grid{grid-template-columns:1fr 1fr}.layout-split .has-image,.layout-editorial .has-image{grid-template-columns:1fr}.layout-split .has-image:nth-child(even) .block-image{order:0}.design-page .invite-copy h2{font-size:clamp(20px,8vw,40px)!important}.editor-controls{padding:16px}}
@media print{.design-page{-webkit-print-color-adjust:exact;print-color-adjust:exact}.editor-preview .invite{max-height:none;overflow:visible}.cover-image,.design-backdrop{print-color-adjust:exact}.photo-cover{break-inside:avoid}}
/* Calm three-column studio, based on the original mock editor. */
.studio-layout{display:grid;grid-template-columns:170px minmax(300px,1fr) 300px;gap:18px;align-items:start}.studio-layout>section{margin:18px 0}.studio-outline,.studio-settings{padding:18px!important}.studio-layout h2{font-size:15px;margin:0 0 8px}.editor-heading h1{font-family:'Noto Sans JP',sans-serif;font-size:29px;font-weight:500}.studio-block{border:1px solid #e3e9e2;border-radius:8px;margin:10px 0;background:white;overflow:hidden}.studio-block.selected{border-color:#81af8d;background:#eff8ef}.studio-block>button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:10px;font-size:12px}.studio-block small{display:block;color:#849188;font-size:10px;margin-bottom:6px}.studio-block strong{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-block>div{display:flex;justify-content:flex-end;padding:0 5px 5px;gap:3px}.studio-block>div button{padding:2px 7px;border:0;background:transparent;font-size:12px}.studio-outline form{border-top:1px solid #e3e9e2;margin-top:20px;padding-top:12px}.studio-outline select{font-size:12px}.studio-preview>div.split{font-size:12px;margin:0 0 14px}.studio-preview .invite{background:#fffdf7;border:1px solid #e8e4d5;border-radius:6px;box-shadow:0 12px 30px #203a3110;margin:auto;max-width:600px;max-height:calc(100vh - 230px);overflow:auto}.studio-settings label{font-size:11px}.studio-settings input,.studio-settings select{font-size:12px;padding:8px}.studio-settings .typography-grid{grid-template-columns:1fr 1fr}.studio-settings .rich-content{font-size:14px;padding:12px;min-height:110px;max-height:220px}.studio-settings .image-picker{border-top:1px solid #e3e9e2;margin-top:14px}.studio-settings .tiny{font-size:10px}.studio-settings .design-settings{margin-top:20px}.studio-settings .rich-toolbar{padding:6px;gap:3px}.studio-settings .rich-toolbar button{font-size:10px;padding:4px 6px}.studio-settings .rich-toolbar select{width:110px}.studio-settings .rich-toolbar input[type=number]{width:52px}.studio-settings .rich-toolbar input[type=color]{width:30px;height:26px}.studio-settings .upload-label{padding:8px}#template-gallery{width:min(900px,90vw);max-height:85vh;border:1px solid #e3e9e2;border-radius:16px;padding:26px;overflow:auto}#template-gallery::backdrop{background:#213b3355}#template-gallery .template-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:55vh}.studio-preview .invitation-page{min-height:500px}.editor-heading{flex-wrap:wrap;gap:12px}.editor-heading .toolbar{flex-wrap:wrap}
@media(max-width:1200px){.studio-layout{grid-template-columns:145px minmax(260px,1fr) 270px;gap:12px}.studio-outline,.studio-settings{padding:12px!important}}
@media(max-width:1050px){.studio-layout{grid-template-columns:160px minmax(0,1fr)}.studio-settings{grid-column:1/-1}.studio-preview .invite{max-height:700px}.studio-settings .typography-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.studio-layout{grid-template-columns:1fr}.studio-preview{grid-row:1}.studio-settings{grid-column:auto}.studio-preview .invite{max-height:600px}#template-gallery .template-grid{grid-template-columns:repeat(2,1fr)}}
/* Twenty reusable invitation frames. */
.design-page[class*="frame-"] .invite-cover{border:0;background:transparent;margin:0;border-radius:0;overflow:hidden}.design-page[class*="frame-"] .invite-cover h2{writing-mode:horizontal-tb;max-height:none}.design-page[class*="frame-"] .invite-section{margin:0}
.frame-double{border:8px double var(--invite-accent);padding:10px}.frame-double .invite-cover:after{content:'';position:absolute;inset:12px;border:1px solid #ffffffa0;pointer-events:none}
.frame-arch{border:1px solid var(--invite-accent);border-radius:180px 180px 8px 8px;padding-top:12px}.frame-arch .invite-cover{border-radius:170px 170px 0 0!important}
.frame-botanical{border:1px solid var(--invite-accent);border-radius:65px 0 65px 0}.frame-botanical .invite-cover:after{content:'❧';position:absolute;right:12px;bottom:8px;color:white;font-size:70px;transform:rotate(-30deg)}
.frame-ticket{border:2px dashed var(--invite-accent);padding:12px}.frame-ticket .invite-section{border-bottom:2px dashed var(--invite-accent)}.frame-ticket .invite-cover:after{content:'ADMIT ONE';position:absolute;right:6px;top:25px;writing-mode:vertical-rl;letter-spacing:5px;color:white;font-size:12px}
.frame-postcard{border:14px solid #eee3ce;box-shadow:inset 0 0 0 1px var(--invite-accent)}.frame-postcard .invite-section-label{letter-spacing:4px}.frame-postcard .invite-cover{margin:10px!important}
.frame-polaroid{padding:16px;background:#f7f3e8!important}.frame-polaroid .invite-cover{border:12px solid white!important;border-bottom-width:45px!important;box-shadow:0 5px 12px #0002;transform:rotate(-2deg);margin:8px!important}.frame-polaroid .block-image{border:12px solid white!important;border-bottom-width:30px!important;box-shadow:0 4px 8px #0002}
.frame-ribbon{padding:18px;border:1px solid var(--invite-accent)}.frame-ribbon .invite-section-label{background:var(--invite-accent);color:white!important;padding:6px 24px;clip-path:polygon(0 0,100% 0,93% 50%,100% 100%,0 100%,7% 50%)}
.frame-circle .invite-cover{clip-path:ellipse(49% 49% at 50% 50%);min-height:360px!important}.frame-circle .block-image{border-radius:50%;aspect-ratio:1;max-width:280px;margin:0 auto 24px}
.frame-split{border-left:12px solid var(--invite-accent)}.frame-split .invite-cover{min-height:260px!important;width:70%;margin-left:auto!important}.frame-split .invite-cover .invite-copy{padding:12px}.frame-split .invite-section-label{border-bottom:2px solid var(--invite-accent)}
.frame-editorial{padding:12px}.frame-editorial .invite-cover{min-height:260px!important}.frame-editorial .invite-copy h2{font-style:italic}.frame-editorial .invite-section-label{display:block!important;text-align:left;border-bottom:1px solid currentColor;padding-bottom:10px;letter-spacing:3px}
.frame-gallery .invite-section{border:0;padding-left:18px;padding-right:18px}.frame-gallery .invite-cover{min-height:400px!important}.frame-gallery .block-image{border-radius:0}.frame-gallery .invite-copy{border-bottom:1px solid var(--invite-accent);padding-bottom:26px}
.frame-poster{border:10px solid var(--invite-accent)}.frame-poster .invite-cover{min-height:480px!important}.frame-poster .invite-cover h2{font-size:60px!important;line-height:1.1;text-transform:uppercase}.frame-poster .invite-section-label{letter-spacing:6px}
.frame-japanese{border-top:14px solid var(--invite-accent);border-bottom:14px solid var(--invite-accent);padding:14px;background-color:#faf5e9!important}.frame-japanese .invite-copy h2{font-weight:400;letter-spacing:.15em}.frame-japanese .invite-section-label{border:1px solid currentColor;padding:4px 12px}.frame-japanese .invite-cover:after{content:'結';position:absolute;right:14px;top:14px;border:1px solid white;color:white;padding:4px 8px;font-family:serif}
.frame-geometric{border:6px solid var(--invite-accent)}.frame-geometric .invite-cover{clip-path:polygon(0 0,85% 0,100% 18%,100% 100%,15% 100%,0 82%)}.frame-geometric .invite-section-label{background:var(--invite-accent);color:white;padding:4px 20px;transform:skew(-10deg)}
.frame-scallop{border:12px dotted var(--invite-accent);border-radius:22px}.frame-scallop .invite-cover{border-radius:15px!important}.frame-scallop .block-image{border-radius:40px}.frame-scallop .invite-copy h2{font-style:italic}
.frame-stamp{border:12px dashed var(--invite-accent);padding:12px}.frame-stamp .invite-cover{border:3px dotted white!important}.frame-stamp .invite-section-label{border-radius:50%;border:1px solid currentColor;padding:8px 16px;transform:rotate(-7deg)}
.frame-film{border-left:20px dashed #222;border-right:20px dashed #222;background-color:#222!important}.frame-film .invite-cover{min-height:260px!important}.frame-film .block-image{border-top:12px solid #222;border-bottom:12px solid #222;border-radius:0}.frame-film .invite-section-label{font-family:monospace;letter-spacing:5px}
.frame-notebook{border-left:16px solid #ebe4d5;background-image:repeating-linear-gradient(transparent,transparent 31px,#9db3c32b 31px,#9db3c32b 32px)}.frame-notebook .invite-section{border-left:1px solid #ce797988;margin-left:20px!important}.frame-notebook .block-image{border-radius:0;transform:rotate(2deg)}
.frame-window{border:7px solid var(--invite-accent);border-radius:30px}.frame-window .invite-cover{border-radius:20px!important;margin:12px!important}.frame-window .invite-cover:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 49%,#ffffff70 49%,#ffffff70 51%,transparent 51%),linear-gradient(transparent 49%,#ffffff70 49%,#ffffff70 51%,transparent 51%)}
.frame-luxury{border:12px ridge var(--invite-accent);padding:14px}.frame-luxury .invite-cover:after{content:'✦';position:absolute;top:8px;left:calc(50% - 14px);font-size:28px;color:#f1dfb9}.frame-luxury .invite-section-label:before,.frame-luxury .invite-section-label:after{content:' ❦ ';font-size:18px}.frame-luxury .invite-copy h2{font-style:italic}
#template-gallery{width:min(1050px,94vw)}#template-gallery .template-filters{grid-template-columns:repeat(3,1fr)}.template-item{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:white}.template-item[hidden]{display:none}.template-item .template-card{width:100%;border:0;border-radius:0;padding:0 0 12px;text-align:left}.template-item .template-card>strong,.template-item .template-card>small{display:block;padding:0 12px;font-size:12px}.template-item .template-card>small{font-size:10px;color:var(--muted)}.template-mini{height:205px;overflow:hidden;background:#eee;padding:8px;pointer-events:none}.template-mini .design-page{width:540px;transform:scale(.35);transform-origin:top left;min-height:540px}.template-tag-filters{display:flex;flex-wrap:wrap;gap:5px;margin:14px 0;max-height:90px;overflow:auto}.template-tag-filters button{font-size:11px;padding:4px 10px;border-radius:20px}.template-tag-filters button[aria-pressed=true]{color:white;background:var(--accent)}.template-tags{display:flex;gap:4px;flex-wrap:wrap;padding:0 10px}.template-tags span{font-size:9px;background:#edf3e8;border-radius:10px;padding:2px 6px}.template-favorite{border:0;background:transparent;padding:8px 12px;font-size:11px}.template-favorite[aria-pressed=true]{color:#a76d18}.favorite-only{font-size:12px}
@media(max-width:700px){#template-gallery .template-filters{grid-template-columns:1fr}.template-mini .design-page{transform:scale(.29)}}
/* Focused account entry: one primary action per screen. */
#modal.auth-modal{width:min(480px,calc(100vw - 32px));padding:22px 32px 30px;border:1px solid #e1e8de;border-radius:20px;box-shadow:0 24px 80px #203b3326} .auth-modal #close{font-size:11px;border:0;background:transparent;padding:4px 0;color:var(--muted)}.auth-shell{clear:both;padding-top:12px}.auth-brand{font-size:19px;font-weight:750;margin-bottom:6px}.auth-brand span{color:#92aa71}.auth-shell>.eyebrow{font-size:9px}.auth-shell h2{font-size:25px;font-weight:600;margin:24px 0 8px;letter-spacing:.02em}.auth-intro{font-size:13px;color:var(--muted);line-height:1.8}.auth-tabs{display:flex;margin:24px 0 20px;border-bottom:1px solid var(--border)}.auth-tabs button{flex:1;border:0;border-radius:0;background:transparent;padding:12px 4px;font-size:13px;color:var(--muted)}.auth-tabs button[aria-pressed=true]{border-bottom:2px solid var(--accent);color:var(--accent);font-weight:700}.auth-google{display:flex;width:100%;align-items:center;justify-content:center;gap:12px;font-size:13px}.auth-google span{font-family:Arial,sans-serif;font-weight:bold;font-size:20px}.auth-divider{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted);margin:20px 0}.auth-divider:before,.auth-divider:after{content:'';height:1px;flex:1;background:var(--border)}.auth-shell form>label{font-size:12px;font-weight:600;margin:16px 0 6px}.auth-shell input:not([type=checkbox]){height:46px;font-size:14px}.auth-shell input:focus{outline:2px solid #82a184;outline-offset:2px}.auth-password{display:flex;align-items:center;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:white}.auth-password input{border:0!important;min-width:0}.auth-password button{border:0;padding:8px 12px;font-size:11px;background:transparent;white-space:nowrap}.auth-password:focus-within{outline:2px solid #82a184;outline-offset:2px}.auth-password input:focus{outline:none!important}.auth-hint{font-size:11px;color:var(--muted);line-height:1.7;margin:7px 0 14px}.auth-text-link{border:0;background:transparent;padding:4px 0;font-size:12px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.auth-submit{display:block;width:100%;padding:13px 12px;margin-top:18px;font-size:13px;font-weight:600}.auth-policy{margin-top:18px;padding:12px;background:#f5f7f3;border-radius:9px}.auth-policy p{font-size:11px;color:var(--muted);margin:0 0 10px}.auth-policy label{font-size:11px;align-items:flex-start!important;margin:0!important;line-height:1.7}.auth-policy input{margin-top:4px!important;flex-shrink:0}.auth-error{background:#fff0ec;color:#974337;border:1px solid #edcec5;border-radius:8px;padding:10px;font-size:12px}.auth-error[hidden]{display:none}.auth-footnote{font-size:11px;text-align:center;color:var(--muted);margin:20px 0 0}.auth-back{display:block;margin:20px auto 0}.auth-success{text-align:center}.auth-success-icon{display:grid;place-items:center;width:64px;height:64px;background:#edf3e8;color:var(--accent);border-radius:50%;font-size:28px;margin:15px auto}.auth-success .auth-text-link{margin-top:16px}.organizer-entry{display:flex;align-items:center;justify-content:space-between;gap:20px}.organizer-entry h2{margin:5px 0}.organizer-entry p{font-size:13px;color:var(--muted)}.organizer-entry button{white-space:nowrap;font-size:13px}@media(max-width:600px){#modal.auth-modal{padding:18px 22px 24px}.auth-shell h2{font-size:23px}.organizer-entry{align-items:stretch;flex-direction:column}}

/* Invitation recipients read a single full-width invitation, then reply. */
.invitation-reader>aside,.invitation-reader>main>header{display:none}.invitation-reader>main{margin:0;padding:0;width:100%;max-width:none}.invitation-reader #screen{padding:0}.guest-invitation{max-width:960px;margin:auto;background:#fffdf8;min-height:100vh}.guest-invitation>.invite{padding:0;margin:0}.guest-invitation .design-page{min-height:0}.guest-simple-invite{padding:120px 32px;text-align:center}.guest-simple-invite h1{font-size:clamp(32px,7vw,64px)}.guest-details,.guest-itinerary,.guest-response{padding:48px clamp(22px,7vw,80px)}.guest-details,.guest-response{text-align:center}.guest-details p{white-space:pre-wrap}.guest-itinerary{border-top:1px solid #e5e8df}.guest-response{background:#edf3e8}.guest-response-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px}.guest-response-buttons button{min-width:150px;padding:16px 24px}.guest-footer{text-align:center;padding:28px;color:#849083;font-size:12px}@media(max-width:600px){.guest-response-buttons{flex-direction:column}.guest-response-buttons button{width:100%}}@media print{.invitation-reader .guest-invitation{max-width:none}.guest-footer{display:none}}

.guest-reply-page{max-width:720px;margin:auto;padding:40px 20px 70px}.guest-reply-heading{display:block!important;text-align:center;padding:10px 0 30px;border:0}.guest-reply-heading h1{font-size:clamp(25px,5vw,36px);margin:16px 0}.guest-reply-heading p{color:var(--muted);line-height:1.8}.guest-reply-page .panel{padding:28px}.guest-reply-page #rsvp label{margin:16px 0}.guest-reply-page #rsvp>button{width:100%;padding:16px;margin-top:16px}.guest-reply-saved{background:#edf3e8;padding:16px;border-radius:10px}.invitation-modal{width:min(900px,94vw);max-width:94vw;max-height:92vh;padding:0;border:0;border-radius:16px}.invitation-modal::backdrop{background:#1b3024a8}.invitation-modal>#close{position:sticky;top:0;z-index:5;display:block;margin:0 0 0 auto;border-radius:0 0 0 12px;background:#fff;box-shadow:0 2px 12px #0002;padding:14px 20px}.invitation-modal #modal-content{padding:0}.invitation-modal .guest-invitation{min-height:0}.invitation-modal .guest-simple-invite{padding:65px 30px}.invitation-modal .design-page{min-height:0}@media(max-width:600px){.guest-reply-page{padding:24px 14px}.guest-reply-page .panel{padding:20px}.invitation-modal{width:96vw;max-width:96vw}}@media print{.invitation-modal{position:static;max-height:none;overflow:visible;max-width:none;width:100%}.invitation-modal>#close{display:none}body:has(.invitation-modal[open])>main{display:none}}

.invitation-modal>#close{position:static;display:block;width:calc(100% - 48px);max-width:420px;margin:12px auto 32px;border-radius:10px;background:var(--accent);color:white;padding:17px 24px;box-shadow:none}.invitation-modal #modal-content:focus{outline:none}
.invitation-modal>#close{float:none}

.home-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.home-plan{display:flex;flex-direction:column;padding:26px!important;margin:0!important}.home-plan h2{font-size:25px;margin:12px 0}.home-plan>p{font-size:13px;color:var(--muted);line-height:1.8}.home-plan .plan-lead{font-size:15px;color:var(--text);font-weight:600}.home-plan ul{padding-left:20px;font-size:13px;line-height:2.2;margin:16px 0 28px}.home-plan>button{margin-top:auto;width:100%;padding:14px 12px}.home-plan.featured{border:2px solid #82a184;background:#fbfdf8}.home-plan.upcoming{background:#f5f5f1}.home-plan.upcoming .badge{font-size:11px;vertical-align:middle}.home-guest-note{text-align:center;color:var(--muted);font-size:12px;line-height:1.8;margin:22px 0 38px}.home-events-title{font-size:20px}@media(max-width:1050px){.home-plans{grid-template-columns:1fr}.home-plan{padding:24px!important}}

#menu-toggle{display:none}#premium-menu{display:block;margin-top:10px;width:100%;text-align:center}#premium-menu[hidden]{display:none}.home-plans.signed-in{grid-template-columns:repeat(2,minmax(0,1fr))}#mobile-menu{padding:0;width:min(340px,90vw);height:100dvh;max-height:100dvh;margin:0;border-radius:0;overflow:auto}#mobile-menu::backdrop{background:#203b3280}#menu-close{display:block;margin:14px 14px 0 auto}#mobile-menu>#app-menu{position:static;width:100%;min-height:calc(100dvh - 70px);border:0;display:flex;padding:24px}.invitation-reader #menu-toggle{display:none!important}@media(max-width:1100px){body>aside#app-menu{display:none}body>main{margin-left:0}main>header{padding:16px 20px;gap:12px}#menu-toggle{display:block;font-size:24px;padding:3px 12px}#breadcrumb{flex:1;min-width:0;font-size:13px}#mobile-menu nav{display:grid}#mobile-menu .aside-foot{margin-top:auto;padding-top:24px}.home-plans.signed-in{grid-template-columns:1fr}}@media print{#menu-toggle,#mobile-menu{display:none!important}}
@media(max-width:1100px){#mobile-menu .aside-foot{display:block}#mobile-menu .aside-foot>button{display:block;width:100%;margin-top:10px}#mobile-menu .aside-foot p{display:block}}

/* Keep the drawer within the viewport; long event navigation scrolls independently. */
#mobile-menu[open]{display:flex;flex-direction:column;overflow:hidden;width:min(340px,90vw);max-width:90vw;height:100dvh;max-height:100dvh}#menu-close{flex-shrink:0}#mobile-menu>#app-menu{flex:1;min-height:0;min-width:0;overflow:hidden;flex-direction:column;padding:20px 24px}#mobile-menu .logo{flex-shrink:0}#mobile-menu>#app-menu>p{flex-shrink:0}#mobile-menu nav{min-height:0;overflow-y:auto;overflow-x:hidden;flex:1;display:flex;flex-direction:column;gap:6px;margin-top:14px;padding:0 3px 6px 0}#mobile-menu nav button{flex-shrink:0;width:100%;white-space:normal;overflow-wrap:anywhere}#mobile-menu .aside-foot{flex-shrink:0;display:block;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}#mobile-menu .aside-foot p{overflow-wrap:anywhere}#mobile-menu .aside-foot>button{white-space:normal}@media(max-width:450px){main>header{padding:10px 12px;height:auto;min-height:65px}main>header>#home{font-size:12px;padding:8px}#breadcrumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#mobile-menu>#app-menu{padding:12px 18px}#mobile-menu .aside-foot>button{padding:9px 12px}}

body.modal-page-locked{position:fixed;width:100%;overflow:hidden;overscroll-behavior:none}dialog[open]{pointer-events:auto;overscroll-behavior:contain;touch-action:pan-y; -webkit-overflow-scrolling:touch}dialog::backdrop{pointer-events:auto;touch-action:none}body.modal-page-locked>main,body.modal-page-locked>aside{pointer-events:none}dialog input,dialog select,dialog textarea{font-size:16px}@media(max-width:600px){#modal{position:fixed;inset:0;margin:auto;width:calc(100% - 24px);max-width:calc(100% - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overflow-x:hidden;padding:20px}#modal.invitation-modal{padding:0}#modal.auth-modal{padding:20px}#modal #close{min-height:44px}dialog form{clear:both}}

.themed-itinerary{font-size:var(--body-size);text-align:left;color:inherit;margin-top:26px}.themed-itinerary-stops{list-style:none;padding:0;margin:0}.themed-itinerary-stops>li{display:grid;grid-template-columns:75px minmax(0,1fr);gap:18px;padding:18px 0;border-bottom:1px solid color-mix(in srgb,var(--invite-accent) 25%,transparent)}.themed-itinerary-stops time{color:var(--invite-accent);font-weight:700}.themed-itinerary-stops h3{font-size:1.15em;margin:0 0 6px;color:inherit}.themed-itinerary-stops p{font-size:inherit;margin:0;color:inherit;white-space:pre-wrap}.themed-itinerary-checks{padding-left:22px;line-height:2}.invite-itinerary .themed-itinerary{font-size:inherit}.style-dark .themed-itinerary{color:#f2e6cf}@media(max-width:450px){.themed-itinerary-stops>li{grid-template-columns:55px minmax(0,1fr);gap:12px}}
.style-dark .themed-itinerary-stops time{color:#e7cf9e}

@media(max-width:700px){main,#screen,.studio-layout,.studio-layout>section,.editor-heading,.studio-settings,.studio-preview{min-width:0;max-width:100%}.studio-layout{grid-template-columns:minmax(0,1fr)}.studio-layout>section{width:100%;padding:16px!important}.studio-preview .invite{width:100%;min-width:0;max-width:100%}.studio-settings input,.studio-settings select,.studio-settings textarea{min-width:0;max-width:100%}.editor-heading .toolbar{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.editor-heading .toolbar button{min-width:0;padding:10px 6px;font-size:12px;white-space:normal}.studio-settings .two-col{grid-template-columns:minmax(0,1fr)}.rich-toolbar{max-width:100%;flex-wrap:wrap}.upload-label input{width:100%;min-width:0}.design-page .invite-copy{min-width:0}.themed-itinerary-stops>li{min-width:0}.themed-itinerary p,.themed-itinerary h3{overflow-wrap:anywhere}#template-gallery{max-width:calc(100vw - 20px);padding:16px}#template-gallery .template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.template-item{min-width:0}.template-mini{padding:6px;height:170px}.template-mini .design-page{width:540px;transform:scale(.23)}.template-item .template-card>strong{overflow-wrap:anywhere}.studio-block>button{min-width:0}#screen{padding:20px 14px}}
.guest-reply-heading{height:auto!important;min-height:0}.guest-reply-heading h1{overflow-wrap:anywhere}.guest-reply-page{min-width:0;max-width:100%}
.logo,.auth-brand{font-family:"Noto Sans JP",sans-serif;font-weight:700;letter-spacing:.06em;line-height:1.5}.logo{font-size:23px;white-space:nowrap}.auth-brand{font-size:21px}

.itinerary-layout{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}.itinerary-schedule>.split h2{margin:0;font-size:20px}.itinerary-timeline{border-left:2px solid #cee1cd;margin:28px 0 12px 60px}.itinerary-stop{position:relative;padding:0 0 28px 25px;min-height:68px}.itinerary-stop:before{content:'';position:absolute;left:-6px;top:6px;border-radius:50%;width:10px;height:10px;background:#72a983}.itinerary-stop time{position:absolute;left:-66px;top:0;width:54px;text-align:right;font-size:12px;color:#567c5d}.itinerary-stop h3{font-size:16px;margin:0 0 5px;overflow-wrap:anywhere}.itinerary-stop p{font-size:12px;color:var(--muted);margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.itinerary-delete{font-size:10px;padding:3px 8px;margin-top:8px}.itinerary-add{border-top:1px solid var(--border);padding-top:16px}.itinerary-add input[type=time]{flex:0 1 110px;min-width:100px}.itinerary-add input{min-width:100px}.itinerary-side>.panel:first-child{margin-top:18px}.itinerary-checklist label{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.itinerary-checklist input[type=checkbox]{width:auto;margin:0;flex-shrink:0}.itinerary-checklist label>span{overflow-wrap:anywhere;min-width:0}.itinerary-checklist small{display:block;font-size:11px;color:var(--muted)}.itinerary-checklist input:checked+span{text-decoration:line-through;color:#879b8b}.itinerary-location p{white-space:pre-wrap;overflow-wrap:anywhere}.itinerary-checklist form{margin-top:18px}@media(max-width:850px){.itinerary-layout{grid-template-columns:minmax(0,1fr)}.itinerary-add{display:grid;grid-template-columns:minmax(0,1fr)}.itinerary-add input{min-width:0;width:100%}.itinerary-side>.panel:first-child{margin-top:0}.itinerary-layout>.panel{padding:20px}.itinerary-schedule>.split h2{font-size:18px}}@media print{.itinerary-layout{display:block}.itinerary-stop{break-inside:avoid}.itinerary-timeline{margin-left:70px}}

/* Mobile navigation stays available, and secondary event actions stay tucked away. */
.share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.share-actions>button{min-width:0}.share-alternatives{margin-top:14px}.share-alternatives summary,.event-tools summary{font-size:14px;color:var(--accent)}.share-alternatives .toolbar{padding-top:12px}.event-tools{border-top:1px solid var(--border);margin-top:24px;padding-top:10px}.event-tools .toolbar{display:grid;gap:10px;padding-top:12px}.event-tools .toolbar>button{width:100%;text-align:left}.event-managed{font-size:12px;color:var(--muted);margin:12px 0 0}#notice{pointer-events:none;max-width:calc(100vw - 32px);bottom:calc(20px + env(safe-area-inset-bottom))}#premium-menu{position:relative;text-align:center}#mobile-menu[open]{padding-bottom:env(safe-area-inset-bottom)}#mobile-menu>#app-menu{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#mobile-menu nav{flex:none;overflow:visible}#mobile-menu .aside-foot{margin-top:auto;padding-top:16px}button,.button,summary{touch-action:manipulation}
@media(max-width:1100px){body:not(.invitation-reader)>main>header{position:sticky;top:0;z-index:8;background:#fff;box-shadow:0 2px 10px #263f3608}#screen{padding-bottom:calc(96px + env(safe-area-inset-bottom));scroll-padding-top:84px}#menu-toggle{min-width:44px;min-height:44px;flex-shrink:0}.editor-preview{top:84px}#mobile-menu>#app-menu{flex:1;min-height:0;display:block}#mobile-menu nav{display:grid}#mobile-menu .aside-foot{margin-top:20px}#details>button{width:100%;min-height:46px}.share-actions>button{min-height:46px}input,select,textarea{font-size:16px}}
@media(max-width:450px){.share-actions{grid-template-columns:minmax(0,1fr)}.share-alternatives .toolbar{display:grid;grid-template-columns:minmax(0,1fr)}.share-alternatives .button{text-align:center}.event-tools{margin-top:20px}}
@media print{.event-tools,.share-actions,.share-alternatives{display:none!important}body:not(.invitation-reader)>main>header{display:none!important}}
#share-native[hidden]{display:none}

/* Space event cards through the grid, without stacking panel margins. */
#screen>.grid{gap:16px;margin-top:20px}#screen>.grid>.panel{margin:0}@media(max-width:600px){#screen>.grid{gap:12px;margin-top:16px}}

/* Keep mobile text sizing stable and prevent Safari's small-input auto zoom. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}#screen>.grid>.card{min-width:0;overflow-wrap:anywhere}@media(max-width:1100px){body input:not([type=checkbox]):not([type=radio]),body select,body textarea{font-size:16px!important}}@media(max-width:850px){.grid,.two-col{grid-template-columns:minmax(0,1fr)}}
