@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_dffaa2c9-module__wX8OqW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_dffaa2c9-module__wX8OqW__variable{--font-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.00ewlnc1znsu7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0bnyh_2yo1emg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.p.0glcd8n2pdab0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_2ac5ea40-module__OTgtPa__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_2ac5ea40-module__OTgtPa__variable{--font-display:"Fraunces", "Fraunces Fallback"}
:root{--ink:#17211c;--muted:#6f746d;--paper:#f8f4ec;--canvas:#e8e1d5;--panel:#fffdf9;--line:#ddd6ca;--accent:#d85f3c;--accent-soft:#f6ded4;--green:#416858;--shadow:0 18px 55px #302a2024}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans), sans-serif;margin:0}button,input,textarea,select{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #d85f3c59}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:fixed;overflow:hidden}.app-shell{grid-template-rows:64px minmax(0,1fr);height:100dvh;min-height:100dvh;display:grid;overflow:hidden}.topbar{z-index:20;min-width:0;padding:0 max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf9eb;justify-content:space-between;align-items:center;gap:20px;display:flex}.brand-lockup,.topbar-actions,.panel-heading,.canvas-meta,.range-label,.toggle-row,.quality-card{align-items:center;display:flex}.brand-lockup{gap:12px;min-width:0}.brand-mark{background:var(--ink);color:#fff;width:34px;height:34px;font-family:var(--font-display), serif;border-radius:10px;flex:none;place-items:center;font-size:18px;display:grid}.eyebrow{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 2px;font-size:10px;font-weight:700;line-height:1.2}.topbar h1{font-family:var(--font-display), serif;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;font-weight:550;line-height:1.15;overflow:hidden}.topbar-actions{gap:10px}.saved-status{color:var(--muted);font-size:12px;display:none}.saved-status span{color:#5f8e6c;margin-right:5px;font-size:8px}.version-badge{color:var(--muted);letter-spacing:.04em;white-space:nowrap;font-size:9px;font-weight:700}.icon-button,.quiet-button,.close-inspector,.reset-button{cursor:pointer;background:0 0;border:0}.icon-button{border:1px solid var(--line);border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.export-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:38px;padding:0 14px;font-size:12px;font-weight:700}.account-button{border:1px solid var(--line);min-height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;padding:0 10px;font-size:11px;font-weight:700}.sign-in-page{min-height:100dvh;padding:max(24px, 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));background:radial-gradient(circle at 18% 12%,#fffaf1 0 12%,#0000 37%),linear-gradient(145deg,#e8dfd2,#f6f0e7);place-items:center;display:grid}.sign-in-card{width:min(100%,420px);box-shadow:var(--shadow);background:#fffdf9f5;border:1px solid #ddd6cae6;border-radius:24px;padding:34px}.sign-in-card .brand-mark{margin-bottom:18px}.sign-in-card h1{font-family:var(--font-display), serif;margin:0;font-size:34px;font-weight:550}.sign-in-card>p:not(.eyebrow){color:var(--muted);margin:10px 0 24px;font-size:13px;line-height:1.55}.sign-in-card>small{color:var(--muted);margin-top:18px;font-size:11px;line-height:1.45;display:block}.sign-in-form{gap:9px;display:grid}.sign-in-form label{margin-top:5px;font-size:12px;font-weight:750}.sign-in-form input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);background:#fff;border-radius:11px;padding:0 12px}.sign-in-form .primary-action{margin-top:8px}.sign-in-error{color:#8a321f;background:#fff0ea;border-radius:10px;margin:3px 0 0;padding:10px 12px;font-size:12px}.invite-status{color:var(--muted);margin:0;padding:12px 0;font-size:13px}.workspace{grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.gallery-panel,.inspector-panel{background:var(--panel)}.gallery-panel{border-right:1px solid var(--line);display:none;overflow:hidden}.panel-heading{justify-content:space-between;padding:22px 20px 16px}.panel-heading h2{font-family:var(--font-display), serif;margin:0;font-size:19px;font-weight:550}.quiet-button{color:var(--accent);font-size:12px;font-weight:700}.page-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;height:calc(100% - 76px);margin:0;padding:8px 16px 28px;list-style:none;display:grid;overflow:auto}.page-thumb{width:100%;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;padding:5px;font-size:10px}.page-thumb.active{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.thumb-art{aspect-ratio:1;background:#fff;margin-bottom:6px;display:block;position:relative;overflow:hidden;box-shadow:0 3px 8px #2b251c17}.theme-backdrop{z-index:0;background-color:var(--theme-base);pointer-events:none;background-position:50%;background-size:cover;display:block;position:absolute;inset:0;overflow:hidden}.theme-backdrop.generated-theme{background-color:var(--theme-base)}.theme-backdrop.generated-theme:before{background-image:var(--theme-image);opacity:var(--theme-opacity);background-position:50%;background-size:cover;display:block}.theme-backdrop.generated-theme:after{display:none}.theme-backdrop:before,.theme-backdrop:after{content:"";opacity:var(--theme-opacity);position:absolute;inset:0}.theme-linen:before{background-image:repeating-linear-gradient(2deg, transparent 0 10px, color-mix(in srgb, var(--theme-accent), transparent 91%) 10px 11px), repeating-linear-gradient(88deg, transparent 0 13px, color-mix(in srgb, var(--theme-accent), transparent 94%) 13px 14px)}.theme-linen:after{background:radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--theme-secondary), transparent 20%), transparent 32%), radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--theme-accent), transparent 78%), transparent 36%)}.theme-coastal:before{background:repeating-radial-gradient(ellipse at 30% -8%, transparent 0 6%, color-mix(in srgb, var(--theme-accent), transparent 78%) 6.5% 7.2%, transparent 7.7% 11%);transform:scale(1.35)}.theme-coastal:after{background:linear-gradient(145deg, color-mix(in srgb, var(--theme-secondary), transparent 28%), transparent 52%, color-mix(in srgb, var(--theme-accent), transparent 72%))}.theme-autumn:before{background:radial-gradient(ellipse at 4% 6%, var(--theme-accent) 0 2%, transparent 2.3%), radial-gradient(ellipse at 12% 3%, var(--theme-secondary) 0 2.4%, transparent 2.7%), radial-gradient(ellipse at 94% 12%, var(--theme-accent) 0 2.6%, transparent 2.9%), radial-gradient(ellipse at 5% 92%, var(--theme-secondary) 0 2.3%, transparent 2.6%), radial-gradient(ellipse at 91% 94%, var(--theme-accent) 0 3%, transparent 3.3%)}.theme-winter:before{background:linear-gradient(32deg, transparent 0 7%, color-mix(in srgb, var(--theme-accent), transparent 55%) 7.2% 7.5%, transparent 7.7% 92%, color-mix(in srgb, var(--theme-accent), transparent 62%) 92.2% 92.5%, transparent 92.7%), radial-gradient(circle, color-mix(in srgb, var(--theme-secondary), transparent 25%) 0 1px, transparent 2px);background-size:auto,28px 31px}.theme-celebration:before{background:radial-gradient(ellipse at 7% 14%, color-mix(in srgb, var(--theme-accent), transparent 36%) 0 3%, transparent 3.2%), radial-gradient(ellipse at 93% 12%, color-mix(in srgb, var(--theme-secondary), transparent 38%) 0 3%, transparent 3.2%), radial-gradient(ellipse at 9% 91%, #ddb15d99 0 3%, transparent 3.2%), radial-gradient(ellipse at 91% 89%, color-mix(in srgb, var(--theme-accent), transparent 42%) 0 3%, transparent 3.2%)}.theme-celebration:after{background-image:linear-gradient(35deg, transparent 48%, var(--theme-accent) 49% 52%, transparent 53%), linear-gradient(145deg, transparent 48%, var(--theme-secondary) 49% 52%, transparent 53%);opacity:calc(var(--theme-opacity) * .2);background-position:0 0,11px 14px;background-size:41px 37px}.theme-city:before{background:linear-gradient(to top, color-mix(in srgb, var(--theme-accent), transparent 70%), transparent), repeating-linear-gradient(90deg, color-mix(in srgb, var(--theme-accent), transparent 72%) 0 7%, transparent 7% 11%);clip-path:polygon(0 32%,8% 32%,8% 12%,18% 12%,18% 43%,27% 43%,27% 0,38% 0,38% 35%,49% 35%,49% 18%,59% 18%,59% 48%,70% 48%,70% 8%,80% 8%,80% 29%,91% 29%,91% 17%,100% 17%,100% 100%,0 100%);top:62%}.theme-city:after{background:radial-gradient(circle at 50% 110%, transparent 0 28%, color-mix(in srgb, var(--theme-secondary), transparent 62%) 28.3% 28.8%, transparent 29.1%)}.thumb-frame{background:#fff;display:block;position:absolute;overflow:hidden}.thumb-art.count-0:after{border:1px dashed var(--line);content:"";position:absolute;inset:4px}.canvas-area{overscroll-behavior:contain;min-width:0;min-height:0;padding:18px max(14px, env(safe-area-inset-right)) calc(98px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));background:var(--canvas);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:relative;overflow:hidden auto}.canvas-meta{justify-content:space-between;gap:12px;width:min(100%,760px);margin:0 auto 14px}.canvas-meta p{color:var(--ink);margin:0;font-size:12px}.mobile-page-nav{color:var(--muted);align-items:center;gap:7px;margin-left:auto;font-size:10px;font-weight:700;display:flex}.mobile-page-nav button{border:1px solid var(--line);background:var(--panel);width:30px;height:30px;color:var(--ink);cursor:pointer;border-radius:9px;place-items:center;display:grid}.mobile-page-nav button:disabled{cursor:default;opacity:.35}.mobile-page-nav svg{width:15px;height:15px}.previous-page-icon{transform:rotate(180deg)}.suggestion-pill{cursor:pointer;background:#fffdf9b8;border:1px solid #17211c1f;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:11px;font-weight:650;display:inline-flex}.book-stage{touch-action:pan-y;place-items:center;min-height:0;display:grid;position:relative}.book-page{aspect-ratio:1;width:min(100% - 84px,62dvh,760px);box-shadow:var(--shadow);background:#fff;position:relative;overflow:hidden}.page-peek{z-index:2;cursor:pointer;opacity:.62;background:#fff;border:2px solid #fffdf9d9;border-radius:5px;width:58px;padding:0;position:absolute;top:50%;overflow:hidden;transform:translateY(-50%);box-shadow:0 6px 18px #2b251c2e}.page-peek.previous-page{left:0}.page-peek.next-page{right:0}.page-peek:disabled{visibility:hidden}.page-peek .thumb-art{width:100%;box-shadow:none;margin:0}.photo-slot{pointer-events:none;position:absolute}.photo-slot:not(.polaroid),.thumb-frame:not(.polaroid){filter:drop-shadow(0 var(--photo-shadow-y,0px) var(--photo-shadow-blur,0px) var(--photo-shadow-color,transparent))}.photo-slot.selected-slot{z-index:5}.photo-slot.polaroid,.thumb-frame.polaroid{transform-origin:50%;background:#fff;overflow:visible;box-shadow:0 8px 22px #1c1b173d}.photo-slot.polaroid .photo-tile,.thumb-frame.polaroid .photo-image{box-shadow:inset 0 0 0 1px #17211c12}.adjust-mode .photo-slot.polaroid{pointer-events:auto}.adjust-mode .photo-slot.polaroid .photo-tile{cursor:grab;pointer-events:auto;touch-action:none}.adjust-mode .photo-slot.polaroid.dragging-card .photo-tile{cursor:grabbing}.photo-tile{cursor:pointer;pointer-events:auto;background:#fff;border:0;width:100%;height:100%;padding:0;transition:filter .18s,opacity .18s,outline-color .18s;position:relative;overflow:hidden}.photo-tile:after,.thumb-frame:not(.polaroid):after{z-index:5;box-shadow:inset 0 0 0 var(--photo-border-width,0px) var(--photo-border-color,transparent);content:"";pointer-events:none;position:absolute;inset:0}.photo-tile.selected{z-index:2;outline:4px solid var(--accent);outline-offset:-4px;box-shadow:inset 0 0 0 2px #fffdf9eb}.selection-badge{z-index:7;background:var(--accent);color:#fff;letter-spacing:.04em;pointer-events:none;text-transform:uppercase;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;line-height:1;position:absolute;top:8px;left:8px;box-shadow:0 4px 14px #2a251d47}.layout-divider{z-index:10;cursor:col-resize;opacity:0;pointer-events:none;touch-action:none;background:0 0;border:0;place-items:center;padding:0;transition:opacity .16s;display:grid;position:absolute;transform:translate(-50%)}.layout-divider.horizontal{cursor:row-resize;transform:translateY(-50%)}.layout-divider.vertical{width:28px}.layout-divider.horizontal{height:28px}.layout-divider span{background:var(--accent);border:1px solid #ffffffe6;border-radius:999px;width:5px;height:42px;display:block;box-shadow:0 3px 12px #17211c4d}.layout-divider.horizontal span{width:42px;height:5px}.layout-divider:focus-visible,.layout-divider.dragging{opacity:1;outline:none}.adjust-mode .layout-divider{opacity:1;pointer-events:auto}.adjust-mode-badge{z-index:11;color:#fff;letter-spacing:.02em;pointer-events:none;background:#17211ce0;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:750;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 5px 16px #17211c3d}.book-page.crop-editing .photo-tile:not(.editing){pointer-events:none;filter:saturate(.22)brightness(.72);opacity:.62}.photo-tile.editing{z-index:4;cursor:grab;touch-action:none;outline-offset:-7px;box-shadow:inset 0 0 0 7px var(--accent);outline:3px double #fff}.photo-tile.editing.dragging{cursor:grabbing}.photo-label{z-index:6;color:#fff;pointer-events:none;text-align:center;text-overflow:ellipsis;text-shadow:0 1px 3px #00000059;white-space:nowrap;background:#17211cb8;border-radius:5px;padding:4px 6px;font-size:9px;font-weight:700;line-height:1.25;position:absolute;bottom:7px;left:7px;right:7px;overflow:hidden}.photo-slot.polaroid .photo-label{height:8%;color:var(--ink);text-overflow:ellipsis;text-shadow:none;white-space:nowrap;background:0 0;padding:0;font-size:8px;line-height:1.1;bottom:1%;left:5%;right:5%;overflow:hidden}.label-font-casual{font-family:Bradley Hand,Segoe Print,cursive;font-weight:600}.label-font-marker{font-family:Comic Sans MS,Chalkboard SE,cursive;font-weight:700}.label-font-script{font-family:Snell Roundhand,Brush Script MT,cursive;font-weight:600}.page-text-block{z-index:25;pointer-events:none;white-space:pre-wrap;width:84%;padding:.45em .65em;line-height:1.2;position:absolute;left:8%}.page-text-block.position-top{top:7%}.page-text-block.position-center{top:50%;transform:translateY(-50%)}.page-text-block.position-bottom{bottom:7%}.page-text-block.align-left{text-align:left}.page-text-block.align-center{text-align:center}.page-text-block.align-right{text-align:right}.page-text-block.font-modern{font-family:var(--font-sans), sans-serif;font-weight:650}.page-text-block.font-storybook{font-family:var(--font-display), Georgia, serif;font-weight:600}.page-text-block.font-classic{font-family:Georgia,Times New Roman,serif;font-weight:500}.page-text-block.font-friendly{font-family:"Trebuchet MS", var(--font-sans), sans-serif;font-weight:700}.page-text-block.treatment-plain{text-shadow:0 1px 3px #fffc;background:0 0;border:0;padding-inline:.2em}.page-text-block.treatment-panel{border:1px solid color-mix(in srgb, var(--text-border), transparent 35%);background:color-mix(in srgb, var(--text-background), transparent 16%);border-radius:.5em;box-shadow:0 5px 20px #17211c24}.page-text-block.treatment-sticker{border:.14em solid var(--text-border);background:var(--text-background);width:fit-content;max-width:84%;box-shadow:.16em .2em 0 color-mix(in srgb, var(--text-border), black 16%);border-radius:999px;padding:.5em .85em;left:50%;transform:translate(-50%)rotate(-1deg)}.page-text-block.position-center.treatment-sticker{transform:translate(-50%,-50%)rotate(-1deg)}.page-text-block.treatment-framed{border:.18em double var(--text-border);background:color-mix(in srgb, var(--text-background), transparent 8%);box-shadow:inset 0 0 0 .11em color-mix(in srgb, var(--text-border), transparent 68%), 0 6px 18px #17211c26;border-radius:.18em}.crop-mode-badge{z-index:8;color:#fff;letter-spacing:.04em;pointer-events:none;background:#17211ce0;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:750;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 5px 16px #17211c3d}.photo-image{background-image:var(--photo-url);background-position:var(--crop-x) var(--crop-y);width:100%;height:100%;transform:scale(var(--zoom));transform-origin:var(--crop-x) var(--crop-y);background-repeat:no-repeat;background-size:cover;display:block}.empty-state{text-align:center;background:#fffdf9b3;border:1px dashed #c8beaf;border-radius:22px;width:min(100%,520px);padding:34px}.empty-state h2{font-family:var(--font-display), serif;margin:14px 0 8px;font-size:clamp(22px,4vw,34px);font-weight:550}.empty-state p{max-width:420px;color:var(--muted);margin:0 auto 20px;font-size:13px;line-height:1.55}.empty-state small{color:var(--muted);margin-top:15px;display:block}.empty-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:16px;place-items:center;margin:auto;display:grid}.primary-action{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:12px;min-height:44px;padding:0 20px;font-weight:700}.progress-toast{z-index:40;background:var(--ink);color:#fff;box-shadow:var(--shadow);border-radius:999px;padding:11px 16px;font-size:12px;position:absolute;bottom:86px;left:50%;transform:translate(-50%)}.import-progress{z-index:60;padding:20px max(16px, env(safe-area-inset-right)) calc(98px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));pointer-events:all;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#17211c2e;place-items:end center;display:grid;position:fixed;inset:0}.import-progress-card{background:#fffdf9f5;border:1px solid #ffffff9e;border-radius:18px;grid-template-columns:auto minmax(0,1fr);gap:12px;width:min(100%,420px);padding:16px;display:grid;box-shadow:0 18px 55px #24201842}.import-progress-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:13px;place-items:center;display:grid}.import-progress strong{margin:1px 0 4px;font-size:13px;display:block}.import-progress p{color:var(--muted);margin:0 0 10px;font-size:11px;line-height:1.4}.import-progress progress{width:100%;height:7px;accent-color:var(--accent);border:0;border-radius:999px;display:block;overflow:hidden}.import-error{z-index:61;right:max(16px, env(safe-area-inset-right));bottom:calc(96px + env(safe-area-inset-bottom));left:max(16px, env(safe-area-inset-left));color:#7e2f1d;max-width:520px;box-shadow:var(--shadow);background:#fff2ec;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:auto;padding:13px 14px;font-size:12px;display:flex;position:fixed}.import-error button{color:#fff;cursor:pointer;background:#7e2f1d;border:0;border-radius:9px;flex:none;padding:7px 10px;font-weight:700}.photo{isolation:isolate;background-color:#88958b;background-position:50%;background-size:cover;position:relative;overflow:hidden}.photo:before,.photo:after{content:"";position:absolute}.photo:before{z-index:-2;background:linear-gradient(145deg,#7a9c84,#c9a77a 56%,#728685);inset:0}.photo:after{z-index:-1;background:#2b4931a3;border-radius:60% 0 0;width:60%;height:75%;bottom:-12%;right:-8%;transform:rotate(-7deg);box-shadow:-130px 35px #7f9266a6}.photo-main{grid-row:1/span 2}.photo-top:before{background:linear-gradient(160deg,#d2b682,#799197 62%,#556d73)}.photo-top:after{width:70%;height:30%;box-shadow:none;background:#ece0bf8c;border-radius:50%;bottom:12%;left:15%;right:auto}.photo-bottom:before{background:linear-gradient(150deg,#b4a88e,#c27257 55%,#655e4e)}.photo-bottom:after{background:#43382a8c;border-radius:50% 50% 0 0;width:45%;height:70%;bottom:-30%;right:10%;box-shadow:-70px -20px #e1c08e40}.photo span{color:#fff;letter-spacing:.02em;text-shadow:0 1px 8px #00000080;font-size:clamp(8px,1.2vw,11px);font-weight:650;position:absolute;bottom:9px;left:10px;right:10px}.canvas-hint{color:var(--muted);text-align:center;margin:13px 0 0;font-size:11px}.inspector-panel{z-index:30;border-radius:20px 20px 0 0;max-height:82dvh;transition:transform .25s;position:fixed;bottom:0;left:0;right:0;overflow:auto;transform:translateY(105%);box-shadow:0 -18px 55px #24201838}.inspector-panel.open{transform:translateY(0)}.theme-settings{gap:10px;display:grid}.theme-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.theme-heading>span:last-child,.theme-preview-badge{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;font-size:9px;font-weight:800}.theme-heading>span:last-child{padding:5px 7px}.theme-options{scrollbar-gutter:stable;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:318px;padding:2px;display:grid;overflow-y:auto}.theme-option{border:1px solid var(--line);min-width:0;color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:2px 8px;padding:6px;display:grid}.theme-option.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-option:focus-visible{outline-offset:2px}.theme-swatch{aspect-ratio:1;background-color:var(--theme-base,#fff);background-position:50%;background-size:cover;border:1px solid #17211c17;border-radius:7px;grid-row:1/3;width:40px;box-shadow:inset 0 0 0 1px #ffffff40}.theme-option strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;line-height:1.2;overflow:hidden}.theme-option small{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:8px;line-height:1.25;display:-webkit-box;overflow:hidden}.theme-preview-controls{border:1px solid color-mix(in srgb, var(--accent), transparent 65%);background:var(--accent-soft);border-radius:11px;gap:10px;padding:12px;display:grid}.theme-apply-actions{gap:7px;display:grid}.theme-apply-actions .primary-action,.theme-apply-actions .secondary-action{width:100%;min-height:40px}.theme-apply-actions .reset-button,.theme-current .reset-button{margin:0;padding:6px}.theme-current{color:var(--muted);gap:8px;font-size:10px;line-height:1.4;display:grid}.theme-preview-badge{z-index:31;padding:6px 9px;position:absolute;top:12px;right:12px;box-shadow:0 3px 12px #2b251c1a}.setting-note{color:var(--muted);margin:0;font-size:10px;line-height:1.4}.inspector-title{z-index:2;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0}.inspector-title-actions{align-items:center;gap:8px;display:flex}.portrait-inspector-toggle{border:1px solid var(--line);min-height:34px;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:11px;font-weight:700;display:none}.portrait-inspector-toggle svg{width:14px;height:14px;transition:transform .2s;transform:rotate(90deg)}.portrait-inspector-toggle[aria-expanded=true] svg{transform:rotate(-90deg)}.close-inspector{background:#eee9df;border-radius:50%;place-items:center;width:34px;height:34px;font-size:22px;display:grid}.settings-group{border-bottom:1px solid var(--line);padding:20px}.settings-label,.range-label label{font-size:12px;font-weight:700}.text-color-row{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.text-color-row label{color:var(--muted);gap:6px;font-size:10px;font-weight:700;display:grid}.text-color-row input[type=color]{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;width:100%;height:34px;padding:3px}.layout-options{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px;display:grid}.layout-option{border:1px solid var(--line);cursor:pointer;color:var(--muted);background:#fff;border-radius:9px;gap:6px;padding:8px;font-size:10px;display:grid}.layout-option.selected{border-color:var(--accent);color:var(--ink);box-shadow:0 0 0 1px var(--accent)}.segmented-control{background:#eee9df;border-radius:11px;grid-template-columns:1fr 1fr;gap:4px;margin-top:10px;padding:4px;display:grid}.segmented-control button{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 8px;font-size:10px;font-weight:750}.segmented-control button.selected{color:var(--ink);background:#fff;box-shadow:0 2px 8px #17211c1a}.toggle-field{color:var(--ink);align-items:center;gap:9px;margin-top:14px;font-size:11px;font-weight:700;display:flex}.toggle-field input{width:18px;height:18px;accent-color:var(--accent)}.shuffle-layout-button{border:1px solid var(--line);width:100%;min-height:38px;color:var(--accent);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:7px;margin-top:10px;font-size:11px;font-weight:750;display:flex}.thumb-photo-label{z-index:5;color:#0000;background:#17211cb3;border-radius:2px;height:5%;position:absolute;bottom:3%;left:3%;right:3%}.thumb-frame.polaroid .thumb-photo-label{text-align:center;text-overflow:ellipsis;white-space:nowrap;background:0 0;height:7%;line-height:1;bottom:1%;overflow:hidden}.thumb-page-text{z-index:20;width:82%;max-height:18%;color:var(--ink);white-space:pre-wrap;padding:2px;font-size:3px;line-height:1.1;position:absolute;left:9%;overflow:hidden}.thumb-page-text.position-top{top:7%}.thumb-page-text.position-center{top:50%;transform:translateY(-50%)}.thumb-page-text.position-bottom{bottom:7%}.thumb-page-text.align-left{text-align:left}.thumb-page-text.align-center{text-align:center}.thumb-page-text.align-right{text-align:right}.thumb-page-text.font-modern{font-family:var(--font-sans), sans-serif}.thumb-page-text.font-storybook{font-family:var(--font-display), serif}.thumb-page-text.font-classic{font-family:Georgia,serif}.thumb-page-text.font-friendly{font-family:Trebuchet MS,sans-serif}.thumb-page-text.treatment-plain{background:0 0}.thumb-page-text.treatment-panel{border:1px solid var(--text-border);background:var(--text-background);border-radius:2px}.thumb-page-text.treatment-sticker{border:1px solid var(--text-border);background:var(--text-background);border-radius:999px;width:fit-content;max-width:82%;left:50%;transform:translate(-50%)rotate(-1deg)}.thumb-page-text.position-center.treatment-sticker{transform:translate(-50%,-50%)rotate(-1deg)}.thumb-page-text.treatment-framed{border:2px double var(--text-border);background:var(--text-background)}.mini-layout{aspect-ratio:1.4;background:#f2eee6;grid-template-columns:1fr 1fr;gap:2px;padding:3px;display:grid}.mini-layout i{background:#aaa99f}.mini-2{grid-template-columns:1.3fr 1fr}.mini-2 i:first-child{grid-row:span 2}.mini-3{grid-template-rows:.85fr 1.15fr}.mini-3 i:nth-child(3),.mini-3 i:nth-child(4){grid-column:span 1}.mini-4{grid-template-columns:1.6fr 1fr}.mini-4 i:first-child{grid-row:span 3}.mini-4 i:nth-child(n+2){grid-column:2}.mini-5{display:block;position:relative}.mini-5 i{border:2px solid #fff;width:44%;height:42%;position:absolute;box-shadow:0 1px 3px #17211c40}.mini-5 i:first-child{top:7%;left:7%;transform:rotate(-7deg)}.mini-5 i:nth-child(2){top:9%;right:6%;transform:rotate(6deg)}.mini-5 i:nth-child(3){bottom:7%;left:8%;transform:rotate(5deg)}.mini-5 i:nth-child(4){bottom:8%;right:7%;transform:rotate(-6deg)}.range-label{justify-content:space-between;margin-bottom:10px}.range-label output{color:var(--muted);font-size:11px}input[type=range]{width:100%;accent-color:var(--accent)}.text-field-label{gap:8px;margin-bottom:18px;font-size:12px;font-weight:700;display:grid}.polaroid-photo-controls{gap:18px;display:grid}.stack-order-controls{color:var(--ink);gap:8px;font-size:12px;font-weight:700;display:grid}.stack-order-controls>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.stack-order-controls button{border:1px solid var(--line);min-height:38px;color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;padding:0 8px;font-size:10px;font-weight:700}.text-field-label input,.text-settings textarea,.text-settings select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:9px}.text-field-label input{min-height:40px;padding:0 10px}.text-settings textarea{resize:vertical;margin:10px 0 12px;padding:10px;display:block}.text-setting-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.text-setting-row label{color:var(--muted);gap:6px;font-size:10px;font-weight:700;display:grid}.text-settings select{min-height:36px;padding:0 8px}.toggle-row{justify-content:space-between;gap:20px}.toggle-row p,.quality-card p{color:var(--muted);margin:4px 0 0;font-size:11px;line-height:1.4}.switch{background:var(--green);cursor:pointer;border:0;border-radius:999px;width:38px;height:22px;padding:2px}.switch span{background:#fff;border-radius:50%;width:18px;height:18px;margin-left:auto;display:block}.quality-card{color:var(--green);background:#e8efe9;border-radius:10px;align-items:flex-start;gap:10px;margin:20px;padding:14px}.quality-card strong{font-size:12px}.quality-card svg{flex:none}.reset-button{color:var(--accent);margin:8px auto 22px;padding:10px;font-size:12px;font-weight:700;display:block}.crop-controls{padding:20px}.control-help{color:var(--muted);margin:0 0 20px;font-size:12px;line-height:1.5}.edit-crop-action{width:100%;margin:0 0 20px}.crop-controls label{grid-template-columns:1fr auto;gap:8px;margin-bottom:22px;font-size:12px;font-weight:700;display:grid}.crop-controls label input{grid-column:1/-1}.crop-controls output{color:var(--muted);font-size:11px;font-weight:500}.crop-edit-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.crop-edit-actions .reset-button{grid-column:1/-1;margin:2px auto 0}.secondary-action{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;min-height:44px;padding:0 16px;font-weight:700}.mobile-controls{z-index:25;right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));left:max(12px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf9eb;border:1px solid #ffffff8c;border-radius:18px;grid-template-columns:repeat(5,1fr);min-height:68px;padding:6px;display:grid;position:fixed;box-shadow:0 10px 35px #29241c2e}.mode-button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:12px;place-items:center;gap:3px;padding:5px 2px;font-size:10px;display:grid}.mode-button.active{background:var(--accent-soft);color:var(--accent)}.mode-button svg{height:20px}.tablet-inspector-trigger{display:none}@media (min-width:700px) and (min-height:600px){.app-shell{grid-template-rows:72px minmax(0,1fr)}.topbar{padding:0 24px}.saved-status{display:inline}.workspace{grid-template-columns:164px minmax(0,1fr)}.gallery-panel{display:block}.canvas-area{padding:76px 28px 34px}.mobile-page-nav,.page-peek{display:none}.book-page{width:min(100%,62dvh,760px)}.mobile-controls{width:340px;min-height:48px;position:absolute;inset:88px auto auto calc(50% + 82px);transform:translate(-50%)}.mode-button{grid-template-columns:auto auto;justify-content:center}.inspector-trigger{display:none}.book-stage{padding-top:0}.tablet-inspector-trigger{z-index:22;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:12px;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-size:12px;font-weight:650;display:flex;position:fixed;bottom:18px;right:16px;box-shadow:0 8px 24px #2a251d24}.tablet-inspector-trigger svg:last-child{transform:rotate(-90deg)}.inspector-panel{border-left:1px solid var(--line);border-radius:0;width:286px;max-height:none;top:72px;bottom:0;left:auto;transform:translate(105%);box-shadow:-18px 0 55px #24201824}.inspector-panel.open{transform:translate(0)}}@media (hover:hover) and (pointer:fine){.book-page:hover .layout-divider{opacity:.18;pointer-events:auto}.book-page .layout-divider:hover{opacity:1}}@media (min-width:1120px) and (min-height:600px){.workspace{grid-template-columns:196px minmax(480px,1fr) 286px}.inspector-panel{border-left:1px solid var(--line);width:auto;max-height:none;box-shadow:none;position:static;transform:none}.close-inspector,.tablet-inspector-trigger{display:none}.mobile-controls{left:calc(50% - 45px)}.canvas-area{padding-left:36px;padding-right:36px}}@media (max-width:420px){.topbar{padding-right:max(12px, env(safe-area-inset-right));padding-left:max(12px, env(safe-area-inset-left))}.brand-mark{width:31px;height:31px}.brand-lockup{gap:8px}.brand-lockup .eyebrow{display:none}.topbar h1{max-width:132px;font-size:15px}.icon-button{display:none}.export-button{padding:0 11px}.suggestion-pill{justify-content:center;width:34px;padding:0;font-size:0}.canvas-hint{display:none}}@media (orientation:portrait) and (max-width:699px){.app-shell.crop-mode .inspector-panel{max-height:31dvh}.app-shell.crop-mode .canvas-area{grid-template-rows:auto auto auto;padding-bottom:calc(31dvh + 14px)}.app-shell.crop-mode .book-stage{align-items:start;min-height:auto;padding:8px 0 12px}.app-shell.crop-mode .book-page{width:min(100% - 44px,45dvh)}.app-shell.crop-mode .page-peek{display:none}.app-shell.crop-mode .portrait-inspector-toggle{display:inline-flex}.app-shell.crop-mode:not(.portrait-inspector-expanded) .crop-controls .control-help,.app-shell.crop-mode:not(.portrait-inspector-expanded) .crop-controls label,.app-shell.crop-mode:not(.portrait-inspector-expanded) .crop-controls>.reset-button,.app-shell.crop-mode:not(.portrait-inspector-expanded) .crop-edit-actions .reset-button{display:none}.app-shell.crop-mode:not(.portrait-inspector-expanded) .crop-controls{padding-top:14px;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.app-shell.crop-mode.portrait-inspector-expanded .inspector-panel{max-height:58dvh}.app-shell.crop-mode.portrait-inspector-expanded .canvas-area{padding-bottom:calc(58dvh + 14px)}}@media (orientation:landscape) and (max-height:599px){.app-shell{min-height:100dvh}.topbar{min-height:56px}.canvas-area{grid-template-rows:auto auto auto;align-content:start;padding-top:12px;transition:margin-right .25s}.book-stage{min-height:max(220px,100dvh - 150px);padding:12px 0 20px}.book-page{width:min(70dvh,100% - 84px,520px)}.empty-state{width:min(100%,580px);padding:22px 28px}.empty-state h2{margin-top:8px;font-size:24px}.empty-state p{margin-bottom:12px}.empty-icon{width:42px;height:42px}.inspector-panel{width:min(42vw,320px);max-height:none;padding-right:env(safe-area-inset-right);border-left:1px solid var(--line);border-radius:18px 0 0;inset:64px 0 0 auto;transform:translate(105%);box-shadow:-18px 0 55px #24201833}.inspector-panel.open{transform:translate(0)}.app-shell.inspector-open .canvas-area{margin-right:min(42vw,320px)}.app-shell.inspector-open .mobile-controls{pointer-events:none;opacity:0;transform:translateY(120%)}.mobile-controls{transition:opacity .2s,transform .25s}.inspector-panel .panel-heading{padding:14px 16px}.crop-controls{padding:16px}.control-help,.crop-controls label{margin-bottom:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
