:root{color:#343b32;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#f3eee3;--page:#fffaf0;--ink:#343b32;--muted:#72766b;--green:#264b43;--green-light:#dae4d8;--gold:#ad9262;--line:#d9d3c3;--serif:"Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Times New Roman", serif;background:#f3eee3;font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}body{background-image:repeating-linear-gradient(0deg,#0000,#0000 3px,#5c4b2703 3px 4px);margin:0}body:has(dialog[open]){overflow:hidden}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:4px;outline:3px solid #6d8a76}img,video{max-width:100%;display:block}svg{flex-shrink:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.55}p{line-height:1.85}h1{letter-spacing:.045em;font-size:clamp(1.8rem,5.5vw,3.1rem)}h2{font-size:1.45rem}small,.fine-print{color:var(--muted);font-size:.75rem;line-height:1.8}.fine-print{margin-top:14px}.brand{font-family:var(--serif);letter-spacing:.22em;white-space:nowrap;align-items:center;gap:9px;font-size:1.05rem;display:inline-flex}.supporting{color:var(--muted)}.break-all{overflow-wrap:anywhere}.primary,.secondary{letter-spacing:.04em;text-align:center;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:13px 22px;font-size:.9rem;font-weight:500;line-height:1.5;text-decoration:none;transition:background .18s,transform .18s;display:inline-flex}.primary{background:var(--green);color:#fffaf0;box-shadow:0 4px 10px #27483812}.primary:hover{background:#355f51;text-decoration:none;transform:translateY(-1px)}.secondary{color:var(--green);background:#fffaf080;border-color:#cbcbbd}.secondary:hover{background:#fffdf6;text-decoration:none}.text-button,.back-button{min-height:44px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:10px 4px;font-size:.8rem;display:inline-flex}.text-button:hover,.back-button:hover{text-decoration:underline}.icon-button{min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:#52654b0d}.danger{color:#985243}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.notice,.error-notice{overflow-wrap:anywhere;border-radius:6px;padding:13px 16px;font-size:.78rem;line-height:1.8;display:block}.notice{color:#4c6245;background:#dce5d67d;border-left:2px solid #7b9571}.notice svg{vertical-align:middle;margin-right:5px}.error-notice{color:#91513f;white-space:pre-wrap;background:#f2ddd65e;border-left:2px solid #bd806b}label{letter-spacing:.035em;color:var(--ink);margin:20px 0 9px;font-size:.81rem;display:block}input:not([type=checkbox]),textarea,select{border:1px solid var(--line);width:100%;min-height:50px;color:var(--ink);appearance:none;background:#ffffff91;border-radius:6px;padding:12px 14px;font-size:16px}textarea{resize:vertical;line-height:1.8}input::placeholder{color:#a4a69c}.checkbox-label{align-items:flex-start;gap:12px;line-height:1.8;display:flex}.checkbox-label input{width:18px;height:18px;accent-color:var(--green);flex-shrink:0;margin:3px 0}.form-columns{grid-template-columns:1fr 1fr;gap:18px;display:grid}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;margin:-1px;position:absolute;overflow:hidden;border:0!important;width:1px!important;height:1px!important;padding:0!important}.date-line{letter-spacing:.12em;color:var(--muted);font-size:.72rem;line-height:1.8}.gate{min-height:100dvh;padding:max(22px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));perspective:1800px}.cover-stage{background:radial-gradient(at 50% 40%,#fffbef80,#0000 65%);place-items:center;display:grid}.cover-layout{text-align:center;width:min(100%,450px)}.cover-layout>.brand{color:#6b725e;margin:0 0 25px;font-size:.88rem}.book-cover{color:#e9dcb9;text-align:center;transform-origin:3%;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff04 2px 3px),linear-gradient(90deg,#17392f 0,#31594b 5%,#1d4138 7%,#2b5145 9% 95%,#203f37);border:0;border-radius:5px 11px 11px 5px;width:100%;min-height:min(640px,73dvh);padding:28px 26px 28px 37px;transition:transform .55s cubic-bezier(.5,.05,.2,1),opacity .4s;display:block;position:relative;box-shadow:3px 0 #e9dfc5,6px 1px #faf3e1,9px 2px #ccc4ad,11px 3px #375a4c,17px 26px 32px #333d242b,-2px 0 2px #16372c44}.book-cover:hover{transform:rotate(-.6deg)translateY(-3px)}.book-cover.is-opening{opacity:0;transform:rotateY(-85deg)}.book-border{min-height:inherit;outline-offset:5px;border:1px solid #bba67170;outline:1px solid #bba67130;flex-direction:column;justify-content:center;align-items:center;padding:34px 14px;display:flex;position:relative}.book-label{font-family:var(--serif);letter-spacing:.25em;font-size:.9rem;line-height:1.9}.book-names{font-family:var(--serif);letter-spacing:.1em;overflow-wrap:anywhere;flex-direction:column;align-items:center;max-width:100%;margin:24px 0 16px;font-size:clamp(2.1rem,8vw,3.3rem);line-height:1.55;display:flex}.book-names i{color:#bea878;font-family:Georgia,serif;font-size:1.7rem;font-weight:400;line-height:1.4}.book-rule{background:#c1ad797a;width:40px;height:1px;margin:14px auto}.book-date{letter-spacing:.14em;margin-top:14px;font-size:.72rem}.book-invitation{font-family:var(--serif);letter-spacing:.1em;margin-top:28px;font-size:.73rem;line-height:2}.book-open-label{letter-spacing:.1em;opacity:.85;align-items:center;gap:12px;margin-top:40px;font-size:.73rem;display:flex}.cover-note{letter-spacing:.06em;color:var(--muted);margin:32px 0 0;font-size:.71rem}.page-stage{padding-top:28px;padding-bottom:28px}.book-page{background:var(--page);border-left:5px solid #d8d3be;border-radius:3px 11px 11px 3px;flex-direction:column;width:min(100%,530px);min-height:calc(100dvh - 56px);margin:0 auto;padding:28px clamp(24px,6vw,49px);display:flex;position:relative;box-shadow:6px 2px #e5decb,9px 3px #fdf6e7,12px 6px #d5ceba,20px 18px 35px #564d3311}.page-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:22px;display:flex}.page-header .brand{font-size:.9rem}.page-number{color:var(--gold);font-family:Georgia,serif}.page-footer{text-align:center;border-top:1px solid var(--line);color:#8d927f;letter-spacing:.1em;margin-top:auto;padding-top:20px;font-size:.65rem}.welcome-message{padding:27px 0 33px}.welcome-message h1{margin:13px 0 22px;font-size:clamp(1.7rem,6vw,2.15rem);line-height:1.7}.couple-sticker{object-fit:contain;filter:drop-shadow(3px 0 #fff)drop-shadow(-3px 0 #fff)drop-shadow(0 3px #fff)drop-shadow(0 -3px #fff)drop-shadow(0 8px 6px #6d664124);max-width:80%;height:210px;margin:8px auto 30px;animation:.6s ease-out both sticker-pop;transform:rotate(-2deg)}.couple-names{font-family:var(--serif);justify-content:center;align-items:center;gap:20px;padding:34px 0 32px;font-size:1.65rem;display:flex}.couple-names span{color:var(--gold);font-family:Georgia,serif;font-size:1.3rem;font-style:italic}.letter-text{white-space:pre-wrap;color:#5c6458;font-size:.88rem;line-height:2.15}.signature{text-align:right;font-family:var(--serif);margin:22px 0 32px}.welcome-message>.primary{width:100%}.welcome-message .fine-print{text-align:center}.entry-form{flex:1;padding:36px 0 30px}.entry-form h1{margin:21px 0 12px;font-size:1.8rem;line-height:1.65}.entry-form .supporting{font-size:.8rem;line-height:1.95}.small-symbol{color:#69806a}.entry-form form>.primary{width:100%;margin-top:25px}.entry-form form>.back-button,.entry-form form>.text-button{width:100%;margin-top:10px}.code-input{text-align:center;letter-spacing:.2em;margin-bottom:24px;min-height:62px!important;font-family:Georgia,serif!important;font-size:1.7rem!important}.text-tabs{border-bottom:1px solid var(--line);gap:16px;margin:24px 0;display:flex}.text-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:13px 4px;font-size:.78rem}.text-tabs button.active{border-color:var(--green);color:var(--green)}.private-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:25px;display:flex}.private-page h1{font-size:1.8rem}.private-page p{max-width:430px;color:var(--muted);font-size:.85rem}.loading-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100dvh;padding:24px;display:flex}.loading-screen p{color:var(--muted);font-size:.82rem}.library-shell{max-width:820px;min-height:100dvh;margin:auto;padding:40px 28px}.library-header{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:15px 0 30px;display:flex}.library-shell h1{margin:65px 0 25px;font-size:clamp(2.5rem,7vw,3.7rem);line-height:1.5}.library-shell>p{color:var(--muted);font-size:.88rem}.library-shell footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:15px;margin-top:70px;padding-top:22px;font-size:.7rem;display:flex}.library-shell footer a{text-decoration:underline}.welcome-book-stage{background:radial-gradient(at 50% 45%,#fffaf0,#0000 70%);overflow:hidden}.welcome-book-scene{perspective:1400px;isolation:isolate;width:min(100%,720px);min-height:max(680px,100svh - 50px);margin:auto;position:relative}.welcome-book-brand{z-index:3;text-align:center;color:#747b66;justify-content:center;margin:4px 0 24px;font-size:.82rem;display:flex;position:relative}.welcome-book-object{transform-origin:75%;width:94%;height:clamp(220px,56vw,355px);transform-style:preserve-3d;z-index:1;transition:transform 1.1s cubic-bezier(.22,.7,.18,1),bottom 1.1s cubic-bezier(.22,.7,.18,1);position:absolute;bottom:calc(50% - 130px);left:50%;transform:translate(-75%)scale(1.65)}.spread-page{background:linear-gradient(90deg,#f9f3e4,#fffaf0 80%,#ded8c6);border:1px solid #d2cab4;border-radius:4px 0 0 8px;width:50%;position:absolute;inset:0;box-shadow:0 4px #e6dfcc,0 8px #faf4e7,0 12px #284e40,0 25px 24px #313c2826}.spread-left{opacity:0;transition:opacity .35s .28s}.spread-right{background:linear-gradient(90deg,#ddd5c0,#fffaf0 15%,#f7efdc);border-left:2px solid #b9b09a;border-radius:0 8px 8px 0;left:50%}.welcome-book-object .book-cover{transform-origin:0%;width:50%;height:100%;min-height:0;transform-style:preserve-3d;opacity:1;border-radius:2px 6px 6px 2px;padding:17px 14px 17px 21px;transition:transform 1.05s cubic-bezier(.35,.05,.24,1);position:absolute;top:0;left:50%;transform:rotateY(0);box-shadow:3px 2px #e4dcc5,6px 4px #254a3c}.welcome-book-object .book-cover:disabled{opacity:1;cursor:default}.welcome-book-object .book-border{backface-visibility:hidden;height:100%;min-height:0;padding:14px 8px;transform:translateZ(1px)}.welcome-book-object .book-cover:after{content:"";backface-visibility:hidden;background:linear-gradient(90deg,#ece4d1,#fff9ec 20%,#f1eadb);border:1px solid #d4cbb7;border-radius:6px 2px 2px 6px;position:absolute;inset:0;transform:rotateY(180deg)translateZ(1px)}.welcome-book-object .book-label{letter-spacing:.12em;font-size:.55rem}.welcome-book-object .book-names{margin:13px 0 6px;font-size:clamp(.9rem,3.5vw,1.5rem);line-height:1.5}.welcome-book-object .book-names i{font-size:.85rem}.welcome-book-object .book-rule{width:26px;margin:8px auto}.welcome-book-object .book-date{letter-spacing:.04em;margin-top:8px;font-size:.47rem}.welcome-book-object .book-open-label{gap:5px;margin-top:20px;font-size:.5rem}.welcome-book-object .book-open-label svg{width:11px;height:11px}.closed-book-note{text-align:center;width:100%;color:var(--muted);font-size:.67rem;transition:opacity .2s;position:absolute;bottom:12px}.welcome-book-scene:is(.is-opening,.is-open) .welcome-book-object{transform-origin:50%;bottom:0;transform:translate(-50%)scale(1)rotateX(54deg)rotate(-2deg)}.welcome-book-scene:is(.is-opening,.is-open) .book-cover{transform:rotateY(-180deg)}.welcome-book-scene:is(.is-opening,.is-open) .spread-left{opacity:1}.welcome-book-scene.is-opening .closed-book-note{opacity:0}.popup-letter{z-index:2;text-align:center;max-width:620px;margin:auto;padding:10px max(10px,6%) 170px;position:relative}.popup-title{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 18px;font-size:clamp(1.6rem,5.8vw,2.25rem);line-height:1.65;animation:.7s 50ms both letter-rise}.popup-couple{transform-origin:50% 100%;animation:.85s cubic-bezier(.2,.85,.25,1.1) .18s both couple-rise}.popup-couple .couple-sticker{max-width:92%;height:clamp(145px,24vh,235px);margin:12px auto 22px;animation:none}.popup-couple .couple-names{overflow-wrap:anywhere;flex-wrap:wrap;min-height:160px}.popup-message{animation:.75s .4s both letter-rise}.popup-message .date-line{font-size:.64rem}.popup-message .letter-text{font-size:.84rem;line-height:2.05}.popup-message .signature{text-align:center;margin:16px 0 22px;font-size:.78rem}.popup-action{animation:.65s .65s both letter-rise}.popup-action .primary{min-width:200px;display:inline-flex}.popup-action .fine-print{margin-top:13px;font-size:.61rem}@keyframes couple-rise{0%{opacity:0;transform:translateY(105px)rotateX(-45deg)scale(.7)}to{opacity:1;transform:translateY(0)rotateX(0)scale(1)}}@keyframes letter-rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.welcome-book-scene.is-opening .popup-title{animation-delay:.55s}.welcome-book-scene.is-opening .popup-couple{animation-delay:.7s}.welcome-book-scene.is-opening .popup-message{animation-delay:.9s}.welcome-book-scene.is-opening .popup-action{animation-delay:1.05s}@media (min-width:701px){.welcome-book-scene{min-height:850px}.welcome-book-object{width:78%}.popup-letter{padding-bottom:185px}}@media (max-width:390px){.welcome-book-object{width:92%}.popup-letter{padding-left:5px;padding-right:5px}.welcome-book-object .book-names{font-size:1rem}}.album-shell{max-width:990px;padding:env(safe-area-inset-top) 24px calc(140px + env(safe-area-inset-bottom));margin:auto}.album-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:84px;display:flex}.album-topbar .brand{font-size:.9rem}.album-heading{justify-content:space-between;align-items:center;gap:20px;padding:38px 0 24px;display:flex}.album-heading h1{margin:12px 0 20px;font-size:2.15rem}.album-heading h1 i{color:var(--gold);font-family:Georgia,serif;font-size:1.5rem}.album-heading h1 span{color:var(--muted);margin-top:10px;font-size:1rem;display:block}.album-heading p:not(.date-line){color:var(--muted);font-size:.78rem}.album-stamp{color:#7c896f;border:1px solid #a6af9675;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:96px;height:96px;display:flex;transform:rotate(9deg)}.album-stamp span{font-family:var(--serif);font-size:.95rem}.album-stamp small{color:inherit;font-size:.61rem}.album-tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:26px;display:flex;overflow:auto}.album-tabs button{white-space:nowrap;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:17px 0;font-size:.81rem}.album-tabs button.active{color:var(--green);border-color:var(--green)}.timeline-caption{color:var(--muted);justify-content:space-between;align-items:center;margin:23px 0 27px;font-size:.66rem;display:flex}.live-label:before{content:"";vertical-align:middle;background:#6c9162;border-radius:50%;width:5px;height:5px;margin-right:7px;display:inline-block}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:29px 24px;display:grid}.polaroid{background:#fffcf5;min-width:0;padding:11px 11px 9px;animation:.35s ease-out both photo-arrive;position:relative;box-shadow:1px 3px 5px #655b371c}.tilt-0{transform:rotate(-1.2deg)}.tilt-1{transform:rotate(.8deg)}.tilt-2{transform:rotate(-.6deg)}.tilt-3{transform:rotate(1.1deg)}.masking-tape{z-index:1;clip-path:polygon(3% 0,100% 6%,96% 100%,0 95%);pointer-events:none;background:#c9bb9375;width:57px;height:18px;position:absolute;top:-8px;left:calc(50% - 28px);transform:rotate(-4deg)}.photo-open{text-align:left;background:#e7e3d7;border:0;width:100%;margin:0;padding:0;display:block;position:relative}.photo-open:disabled{opacity:1;cursor:default}.photo-open img{aspect-ratio:4/5;object-fit:cover;width:100%;height:auto}.photo-caption{justify-content:space-between;align-items:center;gap:3px;padding:10px 0 0;display:flex}.photo-caption>div{flex-direction:column;gap:4px;min-width:0;display:flex}.photo-caption span{font-family:var(--serif);text-overflow:ellipsis;white-space:nowrap;font-size:.87rem;overflow:hidden}.photo-caption time{color:#979b8b;font-size:.59rem}.favorite-button{color:#a1a58d;background:0 0;border:0;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;display:flex}.favorite-button.liked{color:#a47862}.video-label{color:#fff;background:#182620a8;border-radius:4px;align-items:center;gap:5px;padding:5px 7px;font-size:.68rem;display:flex;position:absolute;bottom:9px;left:8px}.processing-card{aspect-ratio:4/5;text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:13px;padding:18px;font-size:.75rem;display:flex}.processing-card small{font-size:.65rem}.load-more{margin:35px auto;display:flex}.album-endnote{text-align:center;font-family:var(--serif);color:#8b927f;letter-spacing:.1em;margin:50px 0 10px;font-size:.7rem}.empty-album{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:15px;min-height:300px;padding:45px 25px;display:flex}.empty-album svg{color:#8f9c7b}.empty-album h2{margin:10px 0 0;font-size:1.4rem}.empty-album p{max-width:330px;color:var(--muted);font-size:.8rem}.album-dock{z-index:5;width:min(100%,800px);padding:16px 22px max(16px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f9f6ebf2;border:1px solid #d4d6c3;border-bottom:0;border-radius:15px 15px 0 0;justify-content:space-between;align-items:center;gap:18px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -5px 22px #555f3d08}.draft-button{min-height:48px;color:var(--muted);background:0 0;border:0;align-items:center;gap:8px;font-size:.75rem;display:flex}.capture-cta{min-width:200px}.capture-shell{max-width:780px}.capture-heading{justify-content:space-between;align-items:center;gap:12px;margin:18px 0;display:flex}.capture-heading p{color:var(--muted);overflow-wrap:anywhere;margin:0 0 5px;font-size:.72rem}.capture-heading h1{letter-spacing:.025em;margin:0;font-size:1.5rem}.capture-heading>.live-label,.capture-heading>span{white-space:nowrap;font-size:.65rem}.camera-page{width:min(100%,420px);margin-inline:auto}.camera-page .camera-viewport{aspect-ratio:3/4;width:100%;height:auto;max-height:none}.camera-page .capture-controls{margin:8px 0 15px}.camera-page .camera-modes{margin:7px 0}.capture-status{color:var(--green);text-align:center;margin:0 0 14px;font-size:.78rem}.capture-help{color:var(--muted);margin:20px 0;font-size:.76rem}.capture-help summary{cursor:pointer;text-align:center;min-height:36px;line-height:36px}.capture-preview{text-align:center;max-width:480px;margin-left:auto;margin-right:auto}.guest-navigation{padding-top:10px;padding-bottom:max(12px,env(safe-area-inset-bottom));justify-content:center;gap:8px}.guest-navigation>button{max-width:190px;min-height:55px;color:var(--muted);background:0 0;border:0;border-radius:9px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 8px;font-size:.7rem;display:flex;position:relative}.guest-navigation>button[aria-pressed=true]{background:var(--green);color:var(--page)}.new-arrivals{background:var(--green-light);min-height:44px;color:var(--green);border-radius:8px;justify-content:center;align-items:center;gap:12px;margin:12px 0;padding:0 12px;font-size:.78rem;display:flex}.new-arrivals .text-button{color:var(--green);white-space:nowrap}.timeline-day{letter-spacing:.06em;grid-column:1/-1;margin:0;padding:18px 0 0;font-size:1rem}.timeline-note{margin-top:4px;font-size:.66rem;display:block}.timeline-caption select{background:var(--page);appearance:auto;width:auto;min-height:40px;padding:8px 28px 8px 12px;font-size:.75rem}@media (max-width:700px){.capture-shell .album-topbar{height:60px}.capture-heading{margin:12px 0}.capture-heading p{margin:0}.capture-heading h1{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.camera-page{width:min(100%,max(220px,75svh - 255px))}.camera-page .camera-viewport{aspect-ratio:3/4;height:auto}.camera-page .shutter{width:72px;height:72px}.camera-page .camera-alternatives{gap:8px}.camera-page .camera-alternatives>.secondary{min-height:42px;padding:9px 14px;font-size:.76rem}.timeline-caption{flex-wrap:wrap;gap:12px}.timeline-note{font-size:.58rem}.guest-navigation{padding-left:12px;padding-right:12px}.guest-navigation>button{font-size:.63rem}}.guest-save-bar{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 24px;font-size:.8rem;display:flex}.guest-save-bar .secondary{min-height:44px}.modal{background:var(--page);width:min(100% - 24px,650px);max-height:calc(100dvh - 36px);color:var(--ink);overscroll-behavior:contain;border:1px solid #d6d2c0;border-radius:14px;padding:24px;overflow:auto;box-shadow:0 24px 70px #1b251840}.modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a2b2599}.modal-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;display:flex}.modal-heading h2{margin:0;font-size:1.25rem}.modal p{font-size:.82rem}.modal-heading .icon-button{margin-right:-10px}.modal-heading .modal-close{white-space:nowrap;flex-shrink:0;gap:4px;min-height:48px;padding:8px;font-size:.9rem;display:inline-flex}.lightbox{width:min(100% - 24px,1050px)}.lightbox-media{background:#e4e3d7;border-radius:6px;overflow:hidden}.lightbox-media img,.lightbox-media video{object-fit:contain;width:100%;height:auto;max-height:65dvh}.lightbox-date{color:var(--muted);margin:15px 0;font-size:.72rem!important}.lightbox-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.save-modal{max-width:470px}.save-modal .primary,.save-modal .secondary{width:100%;margin-top:15px;display:flex}.camera-viewport{aspect-ratio:4/3;background:#1c2923;border-radius:7px;position:relative;overflow:hidden}.camera-viewport>video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.mirrored{transform:scaleX(-1)}.capture-flash{pointer-events:none;background:#fff;animation:.28s ease-out forwards shutter-flash;position:absolute;inset:0}@keyframes shutter-flash{0%{opacity:.65}to{opacity:0}}.capture-receipt{color:#fff;text-align:left;pointer-events:none;background:linear-gradient(#0000,#15251cdf 35%);align-items:center;gap:11px;min-height:78px;padding:18px 14px 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.capture-receipt>div{flex:1;gap:5px;min-width:0;display:grid}.capture-receipt strong{font-size:.77rem;font-weight:500}.capture-receipt span{color:#e6e9df;font-size:.64rem}.capture-thumb{pointer-events:auto;background:#fff;border:1px solid #ffffffb3;border-radius:5px;flex-shrink:0;width:46px;height:50px;padding:0;overflow:hidden}.capture-thumb img,.capture-thumb video{object-fit:cover;width:100%;height:100%}.capture-controls>.icon-button{flex-direction:column;gap:5px;min-width:64px;height:56px;display:flex}.shutter:active{transform:scale(.91)}.shutter{transition:transform .12s}.sending-spinner{animation:1.1s linear infinite upload-spin}@keyframes upload-spin{to{transform:rotate(360deg)}}.camera-wait{color:#dddccf;place-items:center;font-size:.8rem;display:grid;position:absolute;inset:0}.recording-time{color:#fff;background:#16231bb8;border-radius:6px;padding:7px 10px;font-size:.83rem;position:absolute;top:14px;left:14px}.recording-time span{background:#e8816e;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.camera-modes{justify-content:center;gap:24px;margin:13px 0;display:flex}.camera-modes button{min-height:44px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;font-size:.83rem}.camera-modes button.selected{color:var(--green);border-color:var(--green)}.capture-controls{justify-content:space-around;align-items:center;margin:13px 0 22px;display:flex}.shutter{border:5px solid var(--page);background:var(--green);width:74px;height:74px;color:var(--page);border-radius:50%;outline:1px solid #9da58e;place-items:center;display:grid}.video-shutter{background:#a96e5a}.camera-alternatives{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.capture-preview{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.capture-preview img,.capture-preview video{object-fit:contain;max-width:100%;max-height:240px;margin:auto}.draft-row{border-bottom:1px solid var(--line);padding:22px 0}.draft-row>div:first-child{justify-content:space-between;gap:12px;display:flex}.draft-row span{color:var(--muted);font-size:.76rem}.draft-row progress{width:100%;accent-color:var(--green);margin:15px 0}.draft-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.draft-actions .secondary{padding:10px 14px;font-size:.75rem}.empty-state{text-align:center;color:var(--muted);padding:35px}.empty-state svg{margin:auto}.global-error{z-index:9;pointer-events:none;position:fixed;bottom:105px;left:15px;right:15px}.library-picker{width:min(100% - 24px,680px)}.library-checking{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:200px;display:flex}.library-checking p{margin:0}.library-checking small{color:var(--muted)}.library-summary{gap:8px;display:grid}.library-summary strong{font-size:1.05rem}.library-summary span{color:var(--muted)}.library-selection{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;display:grid}.library-file{border:1px solid var(--line);background:var(--paper);min-width:0;color:var(--ink);text-align:left;border-radius:8px;padding:0 0 10px;transition:border-color .15s,background .15s;overflow:hidden}.library-file.is-selected{border:2px solid var(--green);background:#e6eee4}.library-file:disabled{opacity:1}.library-file-image{aspect-ratio:1;color:var(--muted);background:#e1dfd4;place-items:center;display:grid;position:relative;overflow:hidden}.library-file-image img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.library-file-image img[hidden]{display:none}.library-file.is-skipped .library-file-image{opacity:.32}.library-file-state{align-items:center;gap:4px;min-height:36px;margin:5px 8px 0;font-size:.8rem;font-weight:600;line-height:1.4;display:flex}.library-file.is-selected .library-file-state{color:var(--green)}.library-file-name,.library-file-detail{overflow-wrap:anywhere;margin:0 8px;font-size:.7rem;line-height:1.5;display:block}.library-file-name{color:var(--muted)}.library-file-detail{color:#914b38;margin-top:6px}.library-picker-actions{background:var(--page);border-top:1px solid var(--line);gap:8px;margin:14px -24px -24px;padding:16px 24px 20px;display:grid;position:sticky;bottom:-24px}.library-picker-actions .primary{width:100%;min-height:52px;font-size:1rem}.library-picker-actions .text-button{min-height:48px}.library-picker-actions p{justify-content:center;align-items:center;gap:8px;margin:0;line-height:1.5;display:flex}@media (max-width:500px){.library-selection{grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr))}.library-picker{padding:20px}.library-picker-actions{padding:14px 20px max(18px,env(safe-area-inset-bottom));margin-bottom:-20px;margin-left:-20px;margin-right:-20px;bottom:-20px}}.host-shell{max-width:1180px;margin:auto;padding:30px 24px 70px}.host-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:42px;padding:12px 0 28px;display:flex}.host-header>span{color:var(--muted);font-size:.72rem}.host-shell>h1{margin-bottom:10px;font-size:2.2rem}.host-album-picker{flex-wrap:wrap;gap:16px;margin:32px 0;display:flex}.host-album-picker button{border:1px solid var(--line);text-align:left;min-width:190px;color:var(--ink);background:#fffaf080;border-radius:7px;flex-direction:column;gap:5px;padding:18px 24px;font-size:.9rem;display:flex}.host-album-picker button.active{border-color:var(--green);background:var(--green);color:var(--page)}.host-album-picker button.active small{color:#e3e8dacc}.host-album-picker .new-album{min-width:170px;color:var(--muted);background:0 0;border-style:dashed;flex-direction:row;justify-content:center;align-items:center;font-size:.8rem}.host-tabs{border-bottom:1px solid var(--line);gap:22px;display:flex;overflow:auto}.host-tabs button{white-space:nowrap;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:16px 3px;font-size:.82rem}.host-tabs button.active{border-color:var(--green);color:var(--green)}.host-section{padding:36px 0}.host-section>p,.host-section>div>p{color:var(--muted);font-size:.85rem}.invitation-section{grid-template-columns:300px 1fr;align-items:center;gap:55px;display:grid}.qr-paper{text-align:center;background:#fffdf6;padding:22px 24px 28px;transform:rotate(-1deg);box-shadow:2px 4px 9px #4c553116}.qr-paper svg{max-width:100%;height:auto;margin:auto}.qr-paper h2{margin:15px 0;font-size:1.1rem}.qr-paper p{margin-bottom:8px;font-size:.73rem}.invite-code{letter-spacing:.17em;color:var(--green);margin-bottom:15px;font-family:Georgia,serif;font-size:1.9rem;display:block}.qr-paper small{font-size:.65rem;display:block}.settings-layout{grid-template-columns:280px 1fr;gap:65px;display:grid}.settings-layout>div{padding-top:25px}.settings-form>.primary{width:100%;margin-top:25px}.empty-cover{font-family:var(--serif);text-align:center;background:#e5e5d8;border-radius:6px;margin:25px 0;padding:35px 23px;font-size:.87rem;line-height:1.95}.host-cover-preview{width:100%;max-width:100%}.settings-layout>div>p{font-size:.75rem}.settings-layout>div>.text-button{margin-top:10px;display:block}.cover-editor-preview{background:repeating-conic-gradient(#e2e3d8 0% 25%,#f6f6ed 0% 50%) 0 0/20px 20px;border-radius:8px;place-items:center;height:260px;margin:20px 0;display:grid;overflow:hidden}.cover-editor-preview img{object-fit:contain;max-width:95%;height:95%}.cover-editor-preview span{color:var(--muted);background:var(--page);padding:12px;font-size:.8rem}.cover-editor>.primary{width:100%;margin-top:20px}.cover-editor label{margin-top:22px;font-size:.75rem}.cover-editor textarea{min-height:48px;font-size:.8rem}.print-invite-button{margin-top:22px}.print-sheet-preview{width:min(100%,300px);height:auto;margin:20px auto;box-shadow:0 3px 18px #1d332825}.invitation-print>.primary{width:100%}.guest-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:20px 0;display:flex}.guest-row>div:first-child{flex-direction:column;gap:7px;min-width:0;display:flex}.guest-row span{overflow-wrap:anywhere;color:var(--muted);font-size:.78rem}.guest-row .secondary{padding:10px 14px;font-size:.73rem}.moderation-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;display:grid}.moderation-item{border:1px solid var(--line);background:#fffaf085;min-width:0;padding:10px}.moderation-item>strong,.moderation-item>small{margin-top:10px;font-size:.8rem;display:block}.moderation-item>small{font-size:.65rem}.moderation-item .photo-open img{aspect-ratio:1}.export-section{max-width:730px}.export-section>svg{color:#7d8e6f;margin-bottom:22px}.export-parts{flex-direction:column;gap:12px;margin:24px 0;display:flex}.host-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:35px;padding-top:25px;font-size:.7rem}.host-login{max-width:510px;margin:50px auto;padding:30px 24px}.host-login h1{margin-top:35px;font-size:1.9rem}.host-login .primary{width:100%;margin-top:18px}.outbox-mail{border-bottom:1px solid var(--line);padding:18px 0}.outbox-mail strong{overflow-wrap:anywhere;font-size:.82rem}.outbox-mail pre{white-space:pre-wrap;font:inherit;font-size:.8rem;line-height:1.8}.library-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin:40px 0;display:grid}.library-book{background:var(--green);color:#ebdfbc;text-align:center;border-left:8px solid #1f4238;border-radius:3px 8px 8px 3px;flex-direction:column;justify-content:center;align-items:center;gap:23px;min-height:310px;padding:30px;display:flex;box-shadow:5px 1px #dad5c0,8px 3px #365647,10px 14px 20px #283d2420}.library-book>span{font-size:.83rem;font-family:var(--serif);letter-spacing:.08em}.library-book strong{font-family:var(--serif);font-size:1.6rem;font-weight:400;line-height:1.7}.library-book i{color:var(--gold);font:italic 1.2rem Georgia,serif;display:block}.library-book small{color:#d5d5b9;font-size:.66rem}.host-main-nav{border-bottom:1px solid var(--line);gap:28px;margin:-20px 0 34px;display:flex}.host-main-nav button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:14px 2px;font-size:.87rem}.host-main-nav [aria-current=page]{color:var(--green);border-color:var(--green)}.save-methods{gap:8px;margin:22px 0;display:flex}.save-methods button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:6px;flex:1;min-height:44px;padding:12px 8px;font-size:.77rem}.save-methods [aria-pressed=true]{border-color:var(--green);background:var(--green);color:var(--page)}.shortcut-setup{background:#e5e8da70;border-radius:7px;padding:18px}.shortcut-setup>.eyebrow{color:var(--muted);margin-bottom:10px;font-size:.65rem;display:block}.shortcut-setup>.secondary{width:100%;font-size:.8rem}.shortcut-setup p{margin:12px 0 0}.save-destination{color:var(--muted);overflow-wrap:anywhere;font-size:.75rem}.save-destination strong{color:var(--ink);margin-top:5px;font-weight:500;display:block}.guest-album-save p,.guest-album-save .save-batch{font-size:1rem;line-height:1.8}.guest-album-save .fine-print{font-size:.9rem}.guest-album-save .primary,.guest-album-save .secondary{width:100%;min-height:52px;font-size:1rem}.guest-album-save summary{cursor:pointer;min-height:48px;padding:12px 0;font-size:.95rem}.guest-album-save .save-ready{color:var(--green)}.guest-album-save .save-files a{min-height:48px;font-size:.95rem}.guest-album-save .save-batch{flex-wrap:wrap}.gallery-heading{justify-content:space-between;align-items:center;gap:24px;padding:14px 0 24px;display:flex}.gallery-heading h2{margin:8px 0;font-size:2rem;font-weight:400}.gallery-heading h2 i{color:var(--gold);font-family:Georgia,serif}.gallery-heading p{color:var(--muted);font-size:.8rem}.gallery-heading>.text-button{white-space:nowrap}.gallery-tools{border-block:1px solid var(--line);align-items:center;gap:14px;padding:14px 0;display:flex}.gallery-tools select{width:auto;margin-left:auto;font-size:.75rem}.gallery-filters{gap:5px;display:flex}.gallery-filters button{color:var(--muted);background:0 0;border:0;border-radius:20px;min-height:44px;padding:9px 15px;font-size:.8rem}.gallery-filters [aria-pressed=true]{background:var(--green);color:var(--page)}.gallery-tools>.secondary{padding:10px 15px;font-size:.75rem}.gallery-selection{flex-wrap:wrap;align-items:center;gap:15px;padding-top:20px;font-size:.8rem;display:flex}.gallery-selection .text-button{font-size:.75rem}.works-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 18px;margin:28px 0;display:grid}.works-day{grid-column:1/-1;margin:12px 0 -8px;font-size:1.12rem;font-weight:400}.work-photo{aspect-ratio:4/5;background:#e5e3d9;border:0;border-radius:4px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.work-photo img{object-fit:cover;width:100%;height:100%;transition:transform .2s}.work-photo.is-selected img{transform:scale(.93)}.work-photo.is-selected{background:var(--green)}.work-item>div{color:var(--muted);justify-content:space-between;gap:8px;margin-top:9px;font-size:.7rem;display:flex}.work-item time{font-size:.62rem}.work-check{color:#fff;background:#0002;border:1.5px solid #fff;border-radius:50%;place-items:center;width:23px;height:23px;display:grid;position:absolute;top:9px;right:9px}.is-selected .work-check{background:var(--green)}.gallery-save-bar{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:3;background:#f8f5ebf5;border-radius:9px;justify-content:space-between;align-items:center;gap:12px;margin-top:30px;padding:14px 18px;display:flex;position:sticky;bottom:14px;box-shadow:0 6px 24px #243e3312}.gallery-save-bar>span{font-size:.78rem}.gallery-footnote{margin-top:20px}.save-steps{padding-left:22px;font-size:.82rem;line-height:1.9}.save-steps li{margin:10px 0}.save-batch{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:18px 0;font-size:.82rem;display:flex}.album-save>.primary,.album-save>.secondary{width:100%;margin:12px 0}.album-save details{margin:20px 0;font-size:.8rem}.save-files{flex-direction:column;gap:10px;margin:18px 0;display:flex}.save-files a{overflow-wrap:anywhere;background:#fff8;justify-content:space-between;align-items:center;gap:10px;padding:12px;font-size:.68rem;display:flex}.album-save progress{width:100%}@media (max-width:650px){.host-main-nav{margin-top:-16px}.host-shell>h1{font-size:1.65rem}.gallery-heading{display:block}.gallery-heading h2{font-size:1.65rem}.gallery-heading>.text-button{padding-left:0}.gallery-tools{flex-wrap:wrap;gap:9px}.gallery-tools select{max-width:165px}.gallery-tools>.secondary{margin-left:auto}.works-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.work-item>div{display:block}.work-item time{margin-top:4px;display:block}.gallery-save-bar{bottom:max(12px,env(safe-area-inset-bottom));padding:12px}.gallery-save-bar>.primary{padding:12px;font-size:.75rem}.gallery-save-bar>span{font-size:.7rem}}.transfer-check-progress{background:var(--paper,#faf7ee);border:1px solid var(--line,#d9d6c8);border-radius:16px;margin-block:24px;padding:20px}.transfer-check-progress progress{width:100%;height:12px;accent-color:var(--green,#254c42)}.transfer-check-results{gap:16px;margin-block:24px;display:grid}.transfer-check-results article{border-top:1px solid var(--line,#d9d6c8);padding-top:16px}.transfer-check-results article>p{font-variant-numeric:tabular-nums;font-size:20px}.transfer-check-results summary{cursor:pointer;min-height:44px;padding-block:10px}.transfer-check-results pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;font-size:12px}@keyframes sticker-pop{0%{opacity:0;transform:translateY(22px)scale(.86)rotate(-5deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(-2deg)}}@keyframes photo-arrive{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0}}@keyframes page-enter{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.page-enter{animation:.3s ease-out both page-enter}.book-cover{height:min(660px,76dvh);min-height:0}.book-border{height:100%;min-height:0}@media (max-width:700px){.album-shell{padding-left:max(17px,env(safe-area-inset-left));padding-right:max(17px,env(safe-area-inset-right))}.album-topbar{height:72px}.album-heading{align-items:flex-start;padding:27px 0 18px}.album-heading h1{font-size:1.8rem}.album-heading .date-line{font-size:.64rem}.album-heading>div:first-child{max-width:calc(100% - 80px)}.album-stamp{width:70px;height:70px;margin-top:22px}.album-stamp span{font-size:.8rem}.album-stamp small{font-size:.51rem}.album-tabs{gap:22px}.album-tabs button{font-size:.75rem}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 15px}.polaroid{padding:8px 8px 6px}.photo-caption span{font-size:.78rem}.photo-caption time{font-size:.54rem}.album-dock{padding:13px 17px max(15px,env(safe-area-inset-bottom));gap:10px}.capture-cta{min-width:0;padding:13px 14px;font-size:.77rem}.draft-button{gap:6px;font-size:.64rem}.timeline-caption{font-size:.6rem}.processing-card{padding:9px;font-size:.68rem}.processing-card small{font-size:.59rem}.host-shell{padding:20px 20px 55px}.host-shell>h1{font-size:1.75rem}.host-header{margin-bottom:29px}.host-header>span{font-size:.6rem}.host-album-picker{gap:10px}.host-album-picker button{flex:1;min-width:0;padding:14px 17px;font-size:.81rem}.host-album-picker small{font-size:.65rem}.host-tabs{gap:20px}.host-tabs button{font-size:.75rem}.invitation-section,.settings-layout{grid-template-columns:1fr;gap:35px}.qr-paper{width:min(100%,305px);margin:auto}.guest-row{flex-direction:column;align-items:flex-start;gap:15px}.moderation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.settings-layout>div{padding-top:0}.host-cover-preview{height:180px}.modal{max-height:calc(100dvh - 24px);padding:20px}.modal-heading h2{font-size:1.1rem}.form-columns{gap:12px}.library-books{gap:20px}.library-book{min-height:250px;padding:18px 12px}.library-book strong{font-size:1.25rem}.library-book>span{font-size:.74rem}}@media (max-width:390px){.form-columns{grid-template-columns:1fr;gap:0}.book-border{padding:15px 10px}.book-names{margin:15px 0;font-size:2rem}.book-invitation{margin-top:15px;font-size:.65rem}.book-open-label{margin-top:25px}.album-heading h1{font-size:1.55rem}.album-tabs{gap:17px}.album-tabs button{font-size:.7rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.book-cover.is-opening,.book-cover:hover{transform:none}}.guest-navigation>button{min-width:0;min-height:64px;font-size:.875rem;line-height:1.5}.guest-navigation .guest-count{background:var(--green-light);min-width:19px;color:var(--green);border-radius:12px;padding:0 4px;font-size:.75rem;line-height:19px;position:absolute;top:3px;right:7px}.capture-status,.capture-help,.camera-modes button{font-size:1rem}.capture-help summary{min-height:48px;padding:12px 0;line-height:1.6}.camera-page .camera-alternatives>.secondary{min-height:48px;font-size:.95rem}.capture-controls>.icon-button{height:auto;min-height:64px}.capture-controls>.icon-button span{font-size:.875rem}.capture-receipt strong{font-size:1rem}.capture-receipt span{font-size:.875rem}.guest-save-bar{font-size:.95rem}.guest-save-bar .secondary{min-height:52px;font-size:1rem}.album-tabs button{min-height:48px;font-size:.95rem}.album-tabs{flex-wrap:wrap;gap:12px 22px}.timeline-caption select{max-width:100%;min-height:48px;font-size:1rem}
