:root{--ink:#302b2a;--muted:#817a76;--accent:#65424b;--accent-soft:#f3e9ec;--line:#e8e2de;--paper:#f6f4f1;--white:#fff;--shadow:0 14px 45px #31232116;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);font-size:13px}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}button:disabled{cursor:default;opacity:.36}button:hover:not(:disabled){background:#f7f3f4;border-color:#b49ba3}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,#canvas:focus-visible{outline:3px solid #a879895e;outline-offset:3px}[hidden]{display:none!important}.app-header{height:76px;background:#fff;display:flex;align-items:center;padding:0 27px;border-bottom:1px solid var(--line);gap:25px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font:25px Georgia,serif;flex-shrink:0}.logo{position:relative;width:40px;height:42px;border:1px solid #dbcdd1;border-radius:12px;background:#f9f4f5;display:grid;place-items:center;color:var(--accent);font:29px Georgia}.logo>span{position:absolute;font:10px sans-serif;right:3px;top:3px}.brand-small{font:8px -apple-system,sans-serif;letter-spacing:3.5px;display:block;margin-top:4px;color:#938080}.project-meta{border-left:1px solid var(--line);padding-left:25px;min-width:0;display:flex;flex-direction:column;gap:5px;font-size:12px}.project-meta>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.save-state{font-size:10px;color:#7b8375}.save-state::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block;margin-right:5px}.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.history-buttons{display:flex;border-right:1px solid var(--line);padding-right:12px;margin-right:4px}.icon-button{border:1px solid transparent;background:transparent;display:inline-grid;place-items:center;width:33px;height:33px;border-radius:7px;font-size:19px;color:var(--ink)}.secondary,.primary{padding:10px 14px;border-radius:8px;font-size:11px;font-weight:600;white-space:nowrap;border:1px solid #ddd4d0;background:#fff;color:var(--ink);min-height:36px}.primary{background:var(--accent);border-color:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px}.primary:hover:not(:disabled){background:#53353e;border-color:#53353e}.text-button{border:0;background:transparent;color:var(--accent);font-size:11px;padding:6px 0;text-align:left}.full-width{width:100%;margin:4px 0}.studio{height:calc(100dvh - 76px);display:grid;grid-template-columns:300px minmax(0,1fr);overflow:hidden}.inspector{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.inspector-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);flex-shrink:0}.inspector-tabs button{border:0;border-bottom:2px solid transparent;background:#fff;font-size:10px;padding:15px 2px 13px;color:#8c817e}.inspector-tabs button>span{display:block;font-size:19px;line-height:20px;margin-bottom:6px}.inspector-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);background:#fbf7f8;font-weight:600}.inspector-content{overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#ded4cf transparent}.panel{padding:25px 22px 28px}.eyebrow{font-size:8px;letter-spacing:1.4px;font-weight:600;color:#9b8985}.panel-heading{margin-bottom:24px}.panel-heading h1{font:24px/1.2 Georgia,serif;letter-spacing:-.5px;margin:9px 0 8px}.panel-heading p,.helper{font-size:11px;line-height:1.65;color:var(--muted);margin:0 0 14px}.section-label{font-size:9px;letter-spacing:1px;font-weight:650;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.section-label span{font-size:9px;letter-spacing:0;color:#9a8a86;font-weight:400}.section-divider{height:1px;background:var(--line);margin:24px 0 21px}.layout-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:23px}.layout-card{background:white;border:1px solid var(--line);border-radius:8px;padding:10px 8px 8px;min-width:0;text-align:left}.layout-card svg{width:100%;height:43px;margin-bottom:8px;display:block}.layout-card b{font-size:10px;font-weight:600;display:block}.layout-card small{font-size:8px;color:#978782;display:block;line-height:1.5;margin-top:3px}.layout-card.active,.style-card.active{background:#faf4f6;border-color:#a7808e;box-shadow:0 0 0 1px #a7808e}.panel label{display:block;font-size:10px;font-weight:550;margin-bottom:17px}.panel label>span:not(.sr-only){float:right;font-weight:400;color:#9c8f89}.panel input:not([type=color]):not([type=range]):not([type=checkbox]),.panel select{display:block;width:100%;padding:10px 11px;background:#fff;border:1px solid #e3dad6;color:var(--ink);border-radius:7px;margin-top:7px;font-size:11px;height:38px;outline-offset:1px}.panel input[type=range]{display:block;width:100%;margin:13px 0 0;accent-color:var(--accent);height:4px}.panel output{float:right;color:#8e737b;font-size:10px;font-weight:400}.toggle-row,.checkbox-row{display:flex!important;align-items:center;gap:7px;font-size:10px;font-weight:400!important;color:var(--muted)}.toggle-row{justify-content:space-between}.toggle-row>span{float:none!important;color:var(--ink)!important}.panel .toggle-row input{margin:0;width:16px;height:16px;accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent)}.checkbox-row input{margin:0;width:12px;height:12px;flex-shrink:0}.button-row{display:flex;gap:7px;margin:10px 0}.button-row>*{flex:1;padding:9px 6px;font-size:10px}.inspector-foot{padding:15px 22px;font-size:9px;color:#a3958d;background:#fcfaf9;border-top:1px solid var(--line)}.local-dot{display:inline-block;background:#8d9d84;width:5px;height:5px;border-radius:50%;margin-right:6px}.segment{padding:3px;background:#f2efed;border-radius:8px;display:flex;gap:2px;margin-bottom:13px}.segment button{flex:1;background:transparent;border:0;color:#948780;border-radius:6px;font-size:10px;padding:9px 3px}.segment button.active{background:#fff;color:var(--accent);box-shadow:0 1px 4px #42292812;font-weight:600}.selected-photo{display:flex;gap:12px;align-items:center;margin:18px 0 24px}.selected-photo img{width:53px;height:66px;object-fit:cover;border-radius:6px}.selected-photo>div{min-width:0}.selected-photo strong{font-size:11px;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.selected-photo span{display:block;font-size:9px;color:#9b8c85;margin-top:5px}.quality-badge{color:#688164!important;font-weight:600}.quality-badge.low{color:#ac7739!important}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.field-grid label{margin-bottom:13px}#cropControls{margin-top:22px}.search-field input{padding-left:10px!important}.photo-library{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.photo-tile{position:relative;background:#faf8f6;border:1px solid var(--line);border-radius:6px;padding:3px;overflow:hidden}.photo-tile.active{border-color:#8d6874;box-shadow:0 0 0 1px #8d6874}.photo-tile img{display:block;width:100%;height:81px;object-fit:cover;border-radius:3px}.photo-tile small{font-size:8px;display:block;padding:5px 2px;color:#8c7b74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-tile .used-check{position:absolute;right:5px;top:5px;background:#ffffffdd;border-radius:50%;width:13px;height:13px;font-size:8px;color:#668060;display:grid;place-items:center}.empty-library{grid-column:1/-1;color:var(--muted);font-size:11px;padding:15px 0}.style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}.style-card{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 4px 6px;text-align:center;overflow:hidden}.style-card svg{width:100%;height:41px;display:block;border-radius:3px;object-fit:cover}.style-card span{display:block;font-size:8px;margin-top:6px;color:#8b7974}.page-style-summary{display:flex;gap:6px;font-size:8px;color:#9a7c85;margin:-5px 0 20px;flex-wrap:wrap}.page-style-summary span{background:#f8f2f4;padding:5px 7px;border-radius:4px}.palette-swatches{display:flex;gap:7px;margin:14px 0}.palette-swatch{height:30px;width:30px;border:3px solid #fff;outline:1px solid #e2d8d4;border-radius:50%;padding:0}.palette-swatch.active{outline:2px solid #9a7280}.panel .color-row{display:flex;align-items:center;justify-content:space-between;background:#faf8f7;border:1px solid var(--line);padding:8px 10px;border-radius:7px;margin-bottom:15px}.panel .color-row>span{float:none!important;color:#82746e;font-size:10px}.color-row input[type=color]{width:34px;height:24px;padding:0;border:0;background:transparent;cursor:pointer}.print-spec{border:1px solid var(--line);background:#fcf9f8;padding:13px;border-radius:8px;margin:20px 0}.print-spec strong{font-size:11px;display:block}.print-spec>span{font-size:9px;color:#9a827b;display:block;margin-top:7px}.print-spec p{font-size:10px;color:#a1938b;line-height:1.6;margin:10px 0 0}.new-album{font-size:10px;margin:15px 0}.new-album summary{cursor:pointer;padding:7px 0;color:var(--accent)}.new-album p{margin-top:10px}.workspace{min-width:0;display:flex;flex-direction:column;overflow:hidden}.workspace-bar{display:flex;align-items:center;justify-content:space-between;padding:24px 30px 14px;gap:12px;flex-shrink:0}.workspace-bar h2{font:25px/1.25 Georgia,serif;margin:8px 0 0;letter-spacing:-.4px}.coverage{font-size:10px;color:#7e8b71;background:#e9eee3;border:1px solid #dbe1d5;border-radius:20px;padding:7px 10px;white-space:nowrap}.coverage.incomplete{color:#ac7739;background:#fcf0df;border-color:#eddaba}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 30px;padding:7px 0;border-bottom:1px solid #e7dfd9;gap:12px;flex-shrink:0}.spread-navigation{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:500}.view-actions{display:flex;gap:9px;align-items:center;font-size:10px;color:#8d807a}.view-actions label{margin:0 6px 0 0}.view-actions .secondary{padding:7px 11px;min-height:31px;font-size:10px}.view-actions .icon-button{font-size:16px;width:24px}.view-actions .text-button{font-size:10px}.stage{flex:1;min-height:170px;overflow:auto;padding:36px 30px 20px;display:flex;align-items:center;scrollbar-width:thin;background-image:radial-gradient(#d9d2cc55 .7px,transparent .7px);background-size:9px 9px}.spread-wrap{width:100%;margin:auto;flex-shrink:0;position:relative;transition:width .12s}.dimension{font-size:7px;letter-spacing:1.6px;color:#b2a69e;position:absolute;top:-20px;left:0;width:100%;text-align:center}#canvas{aspect-ratio:2;background:#fff;box-shadow:0 4px 5px #27161307,0 18px 40px #4026181c;touch-action:none;outline-offset:6px;position:relative}#canvas>svg{width:100%;height:100%;display:block}#canvas [data-photo]{cursor:grab}#canvas.dragging [data-photo]{cursor:grabbing}.resize-handle{cursor:nwse-resize;pointer-events:all}.photo-outline{pointer-events:none}.page-captions{display:flex;justify-content:space-around;margin-top:14px;font-size:7px;letter-spacing:1.5px;color:#b7a79e}.editing-hint{padding:8px 30px 17px;display:flex;justify-content:space-between;gap:12px;font-size:9px;color:#a08f87;flex-shrink:0}#resolutionSummary{color:#819375;white-space:nowrap}.filmstrip{background:#fff;border-top:1px solid var(--line);padding:16px 25px 13px;flex-shrink:0}.filmstrip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}.filmstrip-header .section-label{margin:0;justify-content:flex-start;font-size:8px}#status{font-size:9px;color:#9a8b81;text-align:right}#status.error{color:#ac3434}#thumbs{display:flex;gap:10px;overflow:auto;padding:1px 2px 4px;scrollbar-width:thin;scrollbar-color:#e0d7d3 transparent}#thumbs button{flex:0 0 105px;position:relative;min-width:0;border:1px solid #e5dcd8;border-radius:6px;padding:5px 5px 7px;background:#fff;text-align:left}#thumbs button.active{border-color:#977481;box-shadow:0 0 0 1px #977481}#thumbs svg{width:100%;height:47px;display:block;margin-bottom:7px}#thumbs small{font-size:8px;color:#9e8b83}#thumbs .number{color:#7c6666;font-weight:600}#thumbs .thumb-check{float:right;font-size:8px;color:#83937a}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:12px 19px;color:white;background:#4d383e;border-radius:10px;box-shadow:var(--shadow);font-size:11px;z-index:100;max-width:80vw}.toast.error{background:#8d4343}dialog{border:1px solid #e0d3cd;border-radius:14px;box-shadow:0 20px 100px #29131d40;max-width:94vw;width:1200px;padding:22px;background:#f8f5f2;color:var(--ink)}dialog::backdrop{background:#34232c80;backdrop-filter:blur(4px)}.preview-header,.preview-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.preview-header{margin-bottom:24px}.preview-header strong{display:block;font:22px Georgia;margin-top:8px}#previewCanvas{aspect-ratio:2;background:white;box-shadow:var(--shadow)}#previewCanvas svg{width:100%;height:100%}.preview-footer{margin-top:20px;font-size:11px;color:#8f7c74}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body.previewing .inspector{opacity:.4;pointer-events:none}
@media(min-width:1500px){.studio{grid-template-columns:320px minmax(0,1fr)}.panel{padding:28px}.stage{padding:44px 55px 25px}.workspace-bar{padding:30px 45px 18px}.canvas-toolbar{margin:0 45px}.editing-hint{padding-left:45px;padding-right:45px}}
@media(max-width:1050px){.studio{grid-template-columns:270px minmax(0,1fr)}.panel{padding:22px 18px}.app-header{padding:0 20px;gap:15px}.project-meta{padding-left:15px;max-width:180px}.brand{font-size:22px}.workspace-bar{padding:24px 22px 16px;align-items:flex-start}.workspace-bar h2{font-size:21px}.coverage{font-size:8px;padding:6px 8px}.canvas-toolbar{margin:0 20px}.stage{padding-left:20px;padding-right:20px}.view-actions{gap:5px}.view-actions label{margin-right:0}.editing-hint{padding-left:20px;padding-right:20px;font-size:8px}#resolutionSummary{display:none}.header-actions{gap:7px}.filmstrip{padding:16px 20px 12px}}
@media(max-width:800px){.project-meta{display:none}.app-header{height:66px}.studio{height:calc(100dvh - 66px);grid-template-columns:240px minmax(0,1fr)}.panel{padding:20px 14px}.workspace-bar{padding:22px 16px 13px;flex-wrap:wrap}.workspace-bar h2{font-size:19px}.coverage{display:none}.view-actions .checkbox-row,.view-actions #zoomOut,.view-actions #zoomIn,.view-actions #zoomLabel,.view-actions #zoomFit{display:none}.canvas-toolbar{margin:0 16px}.stage{padding:30px 16px}.inspector-tabs button{font-size:9px}.inspector-foot{padding:12px 14px;font-size:8px}.editing-hint{padding:10px 16px 16px;font-size:8px}.filmstrip-header #status{display:none}.header-actions .secondary{font-size:10px}.history-buttons{padding-right:4px;margin:0}.panel-heading h1{font-size:22px}}
@media(max-width:580px){body{overflow:auto}.app-header{padding:0 12px;gap:10px}.brand{font-size:18px;gap:7px}.logo{width:30px;height:34px;font-size:23px}.brand-small{font-size:7px;letter-spacing:2px}.header-actions{gap:4px}.header-actions .secondary{font-size:0;width:32px;padding:0}.header-actions .secondary::after{content:'↓';font-size:16px}.header-actions .primary{padding:8px 10px;font-size:9px}.history-buttons .icon-button{width:24px}.studio{display:flex;flex-direction:column;height:auto;overflow:visible}.workspace{order:0;min-height:450px;height:65dvh}.inspector{order:1;border-right:0;border-top:1px solid var(--line);overflow:visible}.inspector-tabs{position:sticky;top:0;z-index:5}.inspector-content{overflow:visible}.panel{padding:25px;max-width:520px;width:100%;margin:auto}.inspector-foot{text-align:center}.workspace-bar{padding:18px 20px 8px}.canvas-toolbar{margin:0 20px}.stage{min-height:150px;padding:29px 20px 12px}.editing-hint{padding:8px 20px 12px;font-size:8px}.filmstrip{padding:12px 18px 10px}#thumbs button{flex-basis:90px}#thumbs svg{height:40px}.layout-card svg{height:54px}.style-card svg{height:57px}.photo-tile img{height:115px}.panel-heading h1{font-size:25px}.view-actions .checkbox-row{display:flex}.workspace-bar h2{font-size:21px}.print-spec p{font-size:11px}dialog{padding:14px}.preview-header strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

@font-face{font-family:"Album-chancery";src:url("/assets/fonts/chancery.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-brush";src:url("/assets/fonts/brush.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-georgia";src:url("/assets/fonts/georgia.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-georgiaitalic";src:url("/assets/fonts/georgiaitalic.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-times";src:url("/assets/fonts/times.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-timesitalic";src:url("/assets/fonts/timesitalic.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-arial";src:url("/assets/fonts/arial.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-trebuchet";src:url("/assets/fonts/trebuchet.ttf") format("truetype");font-display:block}

#status a{color:var(--accent);text-underline-offset:3px}

.recent-files{font-size:10px;margin:16px 0}.recent-files summary{cursor:pointer;padding:8px 0;color:var(--accent)}#recentFiles a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:6px;padding:10px;margin:7px 0;color:var(--ink)}#recentFiles strong{font-size:9px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#recentFiles small{display:block;font-size:8px;color:var(--muted);margin-top:5px}

.photo-tools{margin:0 0 24px;border:1px solid #e9e1de;background:#f7f3f1}.photo-tools button{padding:9px 2px}.effect-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 24px}.effect-card{padding:4px 4px 9px;border:1px solid var(--line);border-radius:8px;text-align:left;background:#fff;overflow:hidden;min-width:0}.effect-card svg{display:block;width:100%;height:70px;border-radius:4px;margin-bottom:8px}.effect-card strong{font-size:10px;font-weight:600;display:block;padding:0 4px}.effect-card small{display:block;padding:5px 4px 0;font-size:8px;color:var(--muted);line-height:1.35}.effect-card.active{border-color:#a7808e;box-shadow:0 0 0 1px #a7808e;background:#faf4f6}.compare-row{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:4px 0 14px}.compare-row .secondary{padding:9px 10px;font-size:10px}.compare-row .active{border-color:#a7808e;background:var(--accent-soft);color:var(--accent)}.fine-tune{margin:16px 0;font-size:10px;border:1px solid var(--line);border-radius:8px;background:#fcfaf9}.fine-tune summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:13px;color:var(--accent);font-weight:600}.fine-tune summary::-webkit-details-marker{display:none}.fine-tune[open] summary{border-bottom:1px solid var(--line);margin-bottom:17px}.fine-tune[open]>div{padding:0 13px 9px}.saved-looks>div{display:flex;align-items:center;margin:6px 0;border:1px solid var(--line);border-radius:6px;overflow:hidden}.saved-look{flex:1;border:0;background:white;padding:11px 9px;text-align:left;font-size:10px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-look span{margin-right:8px;color:var(--accent)}.remove-look{width:26px;align-self:stretch;background:white;border:0;color:#af9d97}.snap-guide{pointer-events:none}.print-spec .secondary{margin-top:13px}.print-dialog{width:680px}.print-dialog>.helper{margin:20px 0 0;font-size:11px;line-height:1.7}.audit-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:20px 0}.audit-stats>div{border:1px solid var(--line);padding:17px 12px;border-radius:9px;background:white}.audit-stats strong{font:26px Georgia;display:block;color:var(--accent)}.audit-stats span{font-size:9px;color:var(--muted);display:block;margin-top:7px}.audit-banner{border:1px solid #dce4d5;background:#edf2e8;color:#6b805c;padding:13px;border-radius:8px;font-size:11px}.audit-banner.review{background:#fff3e4;border-color:#ecd7bc;color:#987a54}.audit-issues{margin-top:16px;max-height:300px;overflow:auto}.audit-issues button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;margin:8px 0;color:var(--accent)}.audit-issues button>div{flex:1}.audit-issues strong{display:block;font-size:11px;font-weight:550}.audit-issues small{font-size:10px;display:block;margin-top:6px;color:var(--muted)}
@media(max-width:580px){.effect-card svg{height:110px}.effect-card strong{font-size:12px}.effect-card small{font-size:10px}.audit-stats{gap:6px}.audit-stats>div{padding:13px 9px}.audit-stats strong{font-size:23px}}

.pick-paper{display:flex;justify-content:center;align-items:center;gap:8px;margin-bottom:9px!important}.pick-paper>span{font-size:18px;line-height:1}.pick-paper.active{color:var(--accent);border-color:#a7808e;background:var(--accent-soft)}#paperHex{font-size:9px;font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:.3px}#canvas.picking-color,#canvas.picking-color *{cursor:crosshair!important}.color-loupe{position:fixed;display:flex;align-items:center;gap:10px;padding:9px 11px 9px 9px;background:#fff;border:1px solid #e0d2d6;border-radius:12px;box-shadow:0 8px 30px #2919232e;z-index:110;pointer-events:none}.loupe-photo{width:48px;height:48px;border-radius:50%;border:2px solid white;box-shadow:0 0 0 1px #cfbdc3;overflow:hidden;position:relative}.loupe-photo canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.loupe-photo span::before,.loupe-photo span::after{position:absolute;content:'';left:50%;top:50%;background:white;box-shadow:0 0 0 .5px #30262aaa;transform:translate(-50%,-50%)}.loupe-photo span::before{width:13px;height:1px}.loupe-photo span::after{height:13px;width:1px}.color-loupe strong{font:11px ui-monospace,SFMono-Regular,monospace;display:inline-block;color:#55434a}.color-loupe small{font-size:9px;color:var(--muted);display:block;margin-top:6px}.color-loupe i{display:inline-block;width:11px;height:11px;border-radius:3px;vertical-align:middle;margin-right:5px;border:1px solid #00000015}

.design-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 30px 10px;flex-shrink:0}.design-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.design-actions .primary,.design-actions .secondary{font-size:10px;min-height:33px;padding:8px 12px}.design-actions .secondary>span{font-size:15px;margin-right:5px;vertical-align:-1px}.design-actions .text-button{padding:8px 5px;font-size:10px}.design-version{font-size:9px;color:#9c888d;white-space:nowrap}.design-version.generated{border:1px solid #decdd2;background:#f6ecef;color:var(--accent);padding:6px 9px;border-radius:20px}.auto-options{border:1px solid #e6d8dd;border-radius:9px;background:#fcf8fa;margin:0 0 24px;font-size:10px}.auto-options summary{padding:13px;cursor:pointer;font-weight:600;color:var(--accent);display:flex;justify-content:space-between;list-style:none}.auto-options summary::-webkit-details-marker{display:none}.auto-options[open] summary{border-bottom:1px solid #ebdfe3;margin-bottom:15px}.auto-options[open]>div{padding:0 13px 1px}.auto-options[open] summary>span{transform:rotate(180deg)}.auto-options .helper{font-size:10px}.auto-options .checkbox-row{line-height:1.6;font-size:10px}.auto-options .checkbox-row input{width:13px;height:13px}.auto-options .helper:last-child{color:#a29091;font-size:9px}
@media(min-width:1500px){.design-bar{margin:0 45px 13px}}
@media(max-width:1050px){.design-bar{margin:0 20px 10px;gap:8px}}
@media(max-width:800px){.design-bar{margin:0 16px 10px;flex-wrap:wrap}.design-actions{gap:5px}.design-actions .primary,.design-actions .secondary{padding:8px 9px;font-size:9px}.design-version{font-size:8px}}
@media(max-width:580px){.design-bar{margin:0 20px 8px;flex-wrap:nowrap}.design-actions .primary,.design-actions .secondary{padding:7px 9px}.design-version{font-size:8px}.workspace{min-height:510px;height:75dvh}.stage{min-height:150px}}

.match-tones{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:9px!important;background:#faf6f8;border-color:#e2d4d9;color:var(--accent)}#toneMatchSwatch{width:13px;height:13px;border-radius:50%;border:1px solid #0000001f;flex-shrink:0}#toneMatchHelp{font-size:10px}

.auto-options .primary{font-size:11px;min-height:39px;margin:4px 0 10px}.auto-options .primary>span{font-size:16px;line-height:1}#autoRunHelp{font-size:9px;color:#a29091}
.photo-replacement{margin:-10px 0 22px}.photo-replacement .helper{font-size:9px;margin:7px 0 0}
#thumbs{user-select:none}#thumbs button[data-spread]{cursor:grab;touch-action:none}#thumbs button:active{cursor:grabbing}#thumbs .drag-source{opacity:.35;border-style:dashed}#thumbs.reordering,#thumbs.reordering button{cursor:grabbing}#thumbs button.drop-before::before,#thumbs button.drop-after::after{content:'';position:absolute;top:2px;bottom:2px;width:3px;background:#a87989;border-radius:3px;box-shadow:0 0 0 2px #f5e8ed;pointer-events:none;z-index:2}#thumbs button.drop-before::before{left:-7px}#thumbs button.drop-after::after{right:-7px}.thumb-grip{font-size:11px;color:#b4a29d;margin-right:4px;vertical-align:-1px}#thumbs button:hover .thumb-grip{color:var(--accent)}.filmstrip-header .filmstrip-reorder-hint{font-size:9px;letter-spacing:0;color:#9a7c85;padding-left:7px;border-left:1px solid var(--line)}

#thumbs button:first-child.drop-before::before{left:0}#thumbs button:last-child.drop-after::after{right:0}
.export-dialog{width:640px;max-height:92dvh;overflow:auto;padding:26px;background:#fff}.export-dialog .preview-header{margin-bottom:8px}.export-intro{font-size:12px;color:var(--muted);margin:0 0 24px}.export-dialog fieldset{border:0;padding:0;margin:0;min-width:0}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.export-dialog label:not(.checkbox-row){display:block;font-size:11px;color:#766860;margin-bottom:17px}.export-dialog input:not([type=checkbox]),.export-dialog select{display:block;width:100%;margin-top:7px;border:1px solid #e1d8d3;border-radius:8px;padding:11px;background:#fcfaf9;color:var(--ink);font-size:12px}.export-dialog input::placeholder{color:#aaa09b}.export-dialog .helper{font-size:10px;color:#95857d;line-height:1.6;margin:-6px 0 16px}.export-advanced{border:1px solid var(--line);border-radius:9px;margin:0 0 18px;padding:12px}.export-advanced summary{cursor:pointer;color:var(--accent);font-size:11px;font-weight:600}.export-advanced[open] summary{margin-bottom:16px}.export-advanced .checkbox-row{font-size:10px;margin:6px 0}.export-specs{display:grid;grid-template-columns:1fr 1fr;gap:15px;background:#f8f3f5;border:1px solid #eadde2;border-radius:11px;padding:17px;margin-top:8px}.export-specs strong{display:block;font-size:14px;color:#65424b;line-height:1.4}.export-specs span{display:block;font-size:10px;color:#927780;margin-top:5px;line-height:1.5}.export-specs p{grid-column:1/-1;margin:0;font-size:10px;color:#927780;padding-top:9px;border-top:1px solid #eadde2}.export-source{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:12px 0 20px;font-size:10px;color:#7e8b71}.export-source .text-button{font-size:10px;white-space:nowrap}.export-source .low-quality{color:#a7793a}.export-validation{padding:10px 12px;background:#fff2ee;color:#a0503b;font-size:11px;border-radius:7px;margin-bottom:12px}.export-progress{padding:16px;border:1px solid var(--line);border-radius:10px;margin:18px 0;background:#fcfaf9}.export-progress>div{display:flex;justify-content:space-between;gap:15px;font-size:11px}.export-progress>div span{color:var(--muted);white-space:nowrap}.export-progress progress{width:100%;height:8px;margin:13px 0 4px;accent-color:var(--accent);border:0;border-radius:8px;overflow:hidden}.export-progress progress::-webkit-progress-bar{background:#ece4e7}.export-progress progress::-webkit-progress-value{background:var(--accent)}.export-progress p{font-size:10px;line-height:1.6;color:#93817b;overflow-wrap:anywhere;margin:5px 0 10px}.export-progress a{display:inline-block;text-decoration:none}.export-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px}.export-footer>span{margin-right:auto;font-size:10px;color:#9b8b84;max-width:210px;line-height:1.5}.export-footer button{min-height:40px}.export-dialog fieldset:disabled{opacity:.5}@media(max-width:600px){.export-dialog{padding:20px}.export-grid,.export-specs{grid-template-columns:1fr}.export-source{align-items:flex-start}.export-footer{flex-wrap:wrap}.export-footer>span{max-width:none;width:100%}}
.export-intro{margin-bottom:18px}.export-dialog label:not(.checkbox-row){margin-bottom:14px}.export-specs{padding:14px}.export-source{margin-bottom:12px}.export-footer{position:sticky;bottom:0;background:#fff;z-index:2;box-shadow:0 -10px 18px #ffffffd9}

@font-face{font-family:"Album-snell";src:url("/assets/fonts/snell.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-snellbold";src:url("/assets/fonts/snellbold.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-savoye";src:url("/assets/fonts/savoye.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-didot";src:url("/assets/fonts/didot.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-baskerville";src:url("/assets/fonts/baskerville.ttf") format("truetype");font-display:block}
@font-face{font-family:"Album-hand";src:url("/assets/fonts/hand.ttf") format("truetype");font-display:block}
.type-launch{display:flex;align-items:center;gap:12px;text-align:left;padding:16px;background:linear-gradient(120deg,#f8eff2,#f4f0e9);border:1px solid #dcc8cf;border-radius:10px;color:#6d4654;margin-bottom:10px}.type-launch>span:first-child{font:32px "Album-snellbold";width:35px}.type-launch>span:nth-child(2){flex:1}.type-launch strong{display:block;font-size:12px}.type-launch small{display:block;font-size:9px;margin-top:5px;color:#9c7b86}.type-launch:hover{border-color:#a87989;box-shadow:0 4px 18px #88607112}.type-dialog{width:1160px;background:#fff;padding:26px;max-height:92dvh;overflow:auto}.type-dialog .preview-header{margin-bottom:8px}.type-dialog .preview-header strong{font:27px Georgia;color:#59404a}.type-intro{font-size:12px;color:#9a838a;margin:0 0 26px}.type-workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:26px}.type-presets{display:grid;grid-template-columns:1fr 1fr;gap:10px}.type-preset{background:#fcfaf8;border:1px solid #e9dedc;border-radius:10px;padding:11px;text-align:left;color:#78505e;min-width:0;transition:border-color .15s,box-shadow .15s}.type-preset .type-sample{height:47px;display:flex;align-items:center;justify-content:center;font-size:31px;margin-bottom:12px;color:#795361;white-space:nowrap}.type-preset strong{font-size:10px;display:block}.type-preset small{font-size:9px;line-height:1.5;display:block;margin-top:5px;color:#a38d92;min-height:27px}.type-preset.active{border-color:#a87588;background:#fbf2f6;box-shadow:0 0 0 1px #a87588}.type-preset:hover{border-color:#b88c9b;box-shadow:0 4px 14px #88607112}.type-proof{align-self:center;border:1px solid #e8ded9;border-radius:14px;background:radial-gradient(ellipse at top,#fdfaf6,#eee9e4);padding:20px}.type-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:24px;font-size:10px;color:#977d86}.type-preview-bar select{width:auto;padding:7px 10px;font-size:10px;margin:0;background:white;border:1px solid #e2d5d8;border-radius:6px;color:#78505e}#typePreview{aspect-ratio:2;box-shadow:0 10px 25px #39252e25;background:white}#typePreview svg{display:block;width:100%;height:100%}.type-proof p{font-size:10px;color:#9a8587;line-height:1.7;min-height:34px;margin:24px 0 16px}.type-details{display:flex;justify-content:center;gap:15px;font-size:8px;color:#ac939d;flex-wrap:wrap}.type-footer{display:flex;align-items:center;gap:18px;margin-top:24px;border-top:1px solid #ecdfdf;padding-top:18px}.type-footer>span{flex:1;font-size:10px;color:#a18c91}.type-footer .text-button{font-size:10px}.type-footer .primary{min-height:40px}.type-footer .primary:disabled{opacity:.4;cursor:default}@media(max-width:850px){.type-workspace{grid-template-columns:270px minmax(0,1fr);gap:15px}.type-proof{padding:14px}.type-details{gap:8px}.type-preset .type-sample{font-size:26px}}@media(max-width:650px){.type-workspace{display:flex;flex-direction:column-reverse}.type-dialog{padding:18px}.type-presets{grid-template-columns:repeat(3,1fr)}.type-preset{padding:8px}.type-preset .type-sample{font-size:23px;height:36px}.type-preset small{font-size:8px}.type-footer{flex-wrap:wrap;gap:8px}.type-footer>span{width:100%;flex:auto;order:3}.type-footer .primary{margin-left:auto}.type-proof{width:100%}.type-intro{font-size:10px}.type-dialog .preview-header strong{font-size:22px}}

.type-dialog{padding:20px 26px}.type-intro{margin-bottom:18px}.type-preview-bar{margin-bottom:16px}#typePreview{max-height:300px}.type-proof p{margin-top:16px;margin-bottom:12px}.type-footer{position:sticky;bottom:-20px;background:white;z-index:2;box-shadow:0 -12px 18px #ffffffed;padding-bottom:8px;margin-top:18px}
#typePreview{margin:0 auto}

.signature-controls summary>span{font-size:8px;font-weight:400;color:#a38b95}.signature-sample{border:1px solid #e8dce1;border-radius:8px;margin:-4px 0 18px;background:linear-gradient(120deg,#fff,#faf4f6);overflow:hidden}.signature-sample svg{display:block;width:100%;height:64px}.signature-controls .field-grid label{font-size:9px}.signature-controls .text-button{display:block;text-align:left;margin:7px 0;font-size:9px}.signature-controls .helper{font-size:9px;line-height:1.7}.signature-controls .secondary{margin-top:12px;font-size:10px}#canvas .signature-label,#canvas .signature-label *{cursor:grab}#canvas.dragging-label,#canvas.dragging-label *{cursor:grabbing!important}
.photo-swap-tools{margin:0 0 14px}.photo-swap-tools .helper{font-size:12px;line-height:1.5;margin:6px 0 0}#swapPhotoMode{min-height:44px;font-size:14px}.photo-swap-tools button[aria-pressed=true]{background:#efe2cd;border-color:#a17b41;color:#5e441e}#canvas .expand-spread-handle,#canvas .expand-spread-handle *{cursor:ne-resize;touch-action:none;pointer-events:all}
@media(max-width:650px){.auto-design-secondary{flex-wrap:wrap}}
.album-border-tools{margin:0 0 16px}.album-border-tools .helper{font-size:12px;line-height:1.5;margin:6px 0 0}#removeAlbumBorders,#removeAlbumShadows{min-height:44px;font-size:14px;white-space:normal}.album-border-tools button+button{margin-top:8px}

/* Selected photo only: seven individual handles; upper-right remains expand-all. */
.photo-drag-controls{margin:14px 0;padding:12px 0 1px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.photo-drag-controls .section-label{margin:0 0 8px}.photo-drag-controls .segment button{min-height:40px}.photo-drag-controls .helper{margin:9px 0 11px;line-height:1.55}
#canvas .photo-outline{pointer-events:none}#canvas .photo-edge-handle{pointer-events:all;touch-action:none}#canvas .edge-n,#canvas .edge-s{cursor:ns-resize}#canvas .edge-e,#canvas .edge-w{cursor:ew-resize}#canvas .edge-nw,#canvas .edge-se{cursor:nwse-resize}#canvas .edge-sw{cursor:nesw-resize}

/* Precision photo tools stay compact until needed. */
.photo-crop-preset-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch}.photo-crop-preset-row select{min-width:0;width:100%;margin:0}.photo-crop-preset-row button{min-height:42px;padding:8px 10px;font-size:11px}#photoCropQuick>label{margin:8px 0 6px}#photoCropQuick>button{margin-bottom:12px;min-height:42px}#photoCropQuick>button[aria-pressed=true]{background:#e8eee9;border-color:#6b8875;color:#355c49}
#photoBatchTools summary>span{font-size:10px;color:#8c7658}.photo-batch-body{padding-top:12px}.photo-batch-selection{display:flex;flex-wrap:wrap;gap:6px}.photo-batch-selection button{flex:1;min-height:40px;padding:8px;font-size:11px}.photo-batch-selection .text-button{flex-basis:100%;margin:0;text-align:left;min-height:34px}.photo-batch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:7px 0 15px}.photo-batch-grid.two{grid-template-columns:1fr 1fr}.photo-batch-grid button{min-width:0;min-height:42px;padding:7px 4px;border:1px solid #d8ccbd;border-radius:6px;background:#fffdfa;font-size:10px;line-height:1.4;color:#655239}.photo-batch-body .section-label{margin:12px 0 6px;font-size:10px}.photo-batch-body .helper{font-size:11px;line-height:1.6}#resizeCenterRow{font-size:11px}#resizeShortcutHelp{font-size:10px}
@media(max-width:700px){.photo-crop-preset-row select{font-size:16px;min-height:44px}.photo-crop-preset-row button,.photo-batch-selection button{min-height:44px;font-size:12px}.photo-batch-grid button{min-height:46px;font-size:12px}.photo-batch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#photoBatchTools summary>span{font-size:11px}.photo-batch-body .helper,#resizeCenterRow{font-size:12px}}
@media(max-width:700px){#photoCropQuick .photo-crop-preset-row{grid-template-columns:minmax(0,1fr) 96px}#photoCropQuick button{min-height:44px;font-size:12px}#photoBatchTools .photo-batch-selection button{min-height:44px;font-size:12px}}
#resizeCenterRow[hidden]{display:none!important}
#photoCropQuick button{white-space:normal;line-height:1.4}
.alignment-tools{margin-bottom:18px}.alignment-body{padding-top:12px}.alignment-body .checkbox-row{min-height:30px;margin-bottom:6px;line-height:1.45}.alignment-body input[type=checkbox]{width:16px;height:16px}.alignment-body .helper{font-size:11px;line-height:1.6}.alignment-body select{margin-bottom:12px}.alignment-page-grid button{min-height:40px}.alignment-state{margin:10px 0 0!important;color:#82516c!important}.editor-alignment-guides,.editor-alignment-guides *{pointer-events:none!important}.editor-alignment-guides line,.editor-alignment-guides path{vector-effect:non-scaling-stroke}#openAlignment{white-space:nowrap;min-height:34px}#openAlignment[aria-expanded=true]{border-color:#a98d63;background:#f8f0df}
@media(max-width:700px){#openAlignment{min-height:44px;font-size:12px;padding:8px 10px}.alignment-body .checkbox-row{min-height:44px;font-size:13px}.alignment-body .helper{font-size:12px}.alignment-body select{font-size:16px;min-height:44px}.alignment-page-grid button{min-height:44px;font-size:12px}.alignment-body button{white-space:normal}.view-actions:has(#openAlignment){flex-wrap:wrap;justify-content:flex-end}}
.photo-lock-button{margin-top:0;margin-bottom:8px}#togglePhotoLock[aria-pressed=true]{background:#5d4b32;color:#fff;border-color:#5d4b32}.spread-layout-tools{margin-bottom:16px}.spread-layout-tools[open]>div{padding-top:12px}.spread-layout-tools .primary{min-height:40px;margin:0 0 16px}.spread-layout-tools label{margin-bottom:6px}.spacing-scale{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin:10px 0 12px}.spread-layout-tools .helper{margin-bottom:4px;font-size:11px}#layoutLockCount{font-size:10px;color:#8c7658}.photo-lock-badge{pointer-events:none}#canvas [data-photo-locked=true]{cursor:default}
@media(max-width:700px){#togglePhotoLock,#balanceSpread,#openSpreadLayoutTools{min-height:44px;font-size:12px}.spread-layout-tools .helper,#photoLockHelp{font-size:12px}.spread-layout-tools input[type=range]{min-height:28px;margin-top:12px}.spacing-scale{font-size:11px}}
.photo-transfer-launch{min-height:44px;margin:3px 0 0;font-size:12px}.photo-transfer-hint{font-size:11px;line-height:1.5;margin:8px 0 15px}
.floating-photo-toolbar{display:flex;flex-direction:column;position:fixed;z-index:65;width:390px;max-width:calc(100vw - 20px);border:1px solid #b9a078;border-radius:15px;overflow:auto;background:linear-gradient(145deg,#fffdf9,#f1e8d8);color:#3d3225;box-shadow:0 12px 38px #21180b38,0 0 0 1px #ffffffb3 inset;overscroll-behavior:contain;animation:photo-toolbar-in .16s ease-out}.floating-photo-toolbar[hidden],body:has(dialog[open]) .floating-photo-toolbar{display:none!important}.photo-quick-heading{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:4px 7px 3px 12px;border-bottom:1px solid #d9c9ae80;font:10px/1.3 system-ui}.photo-quick-heading strong{white-space:nowrap}.photo-quick-heading>span:last-of-type{flex:1;text-align:right;color:#88765d;font-size:9px}.photo-quick-dot{width:6px;height:6px;background:#b08a42;border-radius:50%;box-shadow:0 0 0 3px #d8bf8540}.photo-quick-heading button{border:0;background:transparent;color:#7c6b55;font:20px/1 system-ui;padding:0;width:28px;min-height:28px}.photo-quick-actions{flex-shrink:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:5px;gap:3px}.photo-quick-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:49px;padding:6px 2px;border:1px solid transparent;border-radius:9px;background:transparent;color:#61503a;font:11px/1.2 system-ui;box-shadow:none;white-space:normal}.photo-quick-actions button svg{width:20px;height:20px}.photo-quick-actions button:hover:not(:disabled){border-color:#c5ac7a;background:#fffaf0}.photo-quick-actions button[aria-pressed=true]{background:linear-gradient(145deg,#6a5434,#3f3324);border-color:#6a5434;color:#fff8e9;box-shadow:0 2px 6px #47361d22}.floating-photo-toolbar button:disabled{opacity:.4;cursor:default}.floating-photo-toolbar button:focus-visible,.floating-photo-toolbar input:focus-visible{outline:2px solid #9f7439;outline-offset:2px}.photo-quick-popover{overflow:auto;min-height:0;padding:12px;border-top:1px solid #dacbad;background:#fffcf6}.photo-quick-popover[hidden]{display:none!important}.photo-quick-popover>button{display:block;width:100%;margin:0 0 7px;min-height:44px;background:white;border:1px solid #ddcfb8;border-radius:8px;font-size:12px;color:#58452c}.photo-quick-popover p{font:11px/1.5 system-ui;color:#887357;margin:8px 0 0}.photo-quick-angle-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:12px}.photo-quick-angle-head span{font-size:9px;color:#977c52}.photo-quick-rotation-row,.photo-angle-turns{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:5px;margin-bottom:12px}.photo-quick-rotation-row button,.photo-angle-turns button{min-height:40px;font-size:11px;padding:7px 3px;background:#fff;border:1px solid #d9c8ab;border-radius:7px;color:#685133;white-space:normal}.photo-quick-angle-panel>label{display:flex;align-items:center;justify-content:space-between;margin:9px 0 5px;font-size:12px;color:#604c31}.photo-quick-angle-panel input[type=number]{width:77px;margin:0;min-height:36px;padding:6px 5px;border:1px solid #d6c5a8;border-radius:6px;background:white;text-align:center;font:14px system-ui}.photo-quick-angle-panel input[type=range]{display:block;width:100%;min-height:24px;margin:2px 0 9px;accent-color:#a38142}.photo-quick-angle-panel .photo-quick-grid{justify-content:flex-start;gap:8px;padding-top:8px;border-top:1px solid #e9decb;font-size:11px}.photo-quick-grid input{width:16px;height:16px;accent-color:#8d713f}.photo-angle-controls{margin:0 0 12px}.photo-angle-controls[open]>div{padding-top:10px}.photo-angle-controls summary span{font-size:10px;color:#94794f}.photo-angle-controls .helper{font-size:11px;line-height:1.5}.photo-angle-controls label{font-size:11px}.photo-angle-controls input[type=number]{min-height:38px;font-size:14px}.photo-level-grid{pointer-events:none}.photo-level-grid path{vector-effect:non-scaling-stroke}
@keyframes photo-toolbar-in{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.floating-photo-toolbar{animation:none;backdrop-filter:none}}
@media(max-width:700px){.photo-quick-actions button{min-height:52px;font-size:10px}.photo-quick-heading button{width:38px;min-height:38px}.photo-quick-heading{font-size:11px}.photo-quick-heading>span:last-of-type{font-size:9px}.photo-quick-angle-panel input[type=number]{font-size:16px;min-height:44px}.photo-quick-angle-panel input[type=range]{min-height:32px}.photo-quick-rotation-row button,.photo-angle-turns button{min-height:44px;font-size:11px}.photo-quick-angle-panel>label,.photo-angle-controls label{font-size:12px}.photo-quick-popover p,.photo-angle-controls .helper{font-size:12px}.photo-angle-controls input[type=number]{font-size:16px;min-height:44px}.photo-quick-angle-panel .photo-quick-grid{min-height:36px}}
@media(max-width:700px){.photo-quick-angle-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}.photo-quick-angle-head{grid-column:1/-1;grid-row:1}.photo-quick-angle-panel>label[for=photoQuickRotation]{grid-column:1;grid-row:2}.photo-quick-angle-panel>label[for=photoQuickStraighten]{grid-column:2;grid-row:2}.photo-quick-angle-panel>label[for]{flex-direction:column;align-items:stretch;gap:6px;margin-top:0}.photo-quick-angle-panel input[type=number]{width:100%}#photoQuickRotationSlider{grid-column:1;grid-row:3}#photoQuickStraightenSlider{grid-column:2;grid-row:3}.photo-quick-angle-panel .photo-quick-grid{grid-column:1/-1;grid-row:4;margin-top:0}.photo-quick-rotation-row{grid-column:1/-1;grid-row:5;margin:6px 0 0}.photo-quick-angle-panel>p{grid-column:1/-1;grid-row:6}}
@media print{.floating-photo-toolbar,.photo-level-grid{display:none!important}}
.photo-transfer-dialog{box-sizing:border-box;width:min(880px,calc(100vw - 32px));max-height:92dvh;overflow:auto;padding:22px;border:1px solid #c7ad86;border-radius:16px;background:#fffdfa;color:#493b2a}.photo-transfer-dialog::backdrop{background:#19130dd0;backdrop-filter:blur(5px)}.photo-transfer-dialog .preview-header{gap:12px;margin-bottom:14px}.photo-transfer-dialog .preview-header strong{font:26px/1.2 Georgia,serif}.photo-transfer-dialog label{font-size:13px;margin:14px 0 6px}.photo-transfer-dialog select{min-height:44px;width:100%;margin:6px 0;font-size:15px}.photo-transfer-source{display:flex;gap:12px;align-items:center;background:#f4eee4;border:1px solid #e7dccb;border-radius:10px;padding:10px}.photo-transfer-source img{width:54px;height:66px;object-fit:contain;background:#e8dfd2;border-radius:5px;flex:none}.photo-transfer-source strong{display:block;overflow-wrap:anywhere;font-size:13px;margin-top:4px}.photo-transfer-source .eyebrow{font-size:9px}.photo-transfer-source p{margin:4px 0 0;font-size:12px;line-height:1.45;color:#796850}
.photo-transfer-preview{position:relative;aspect-ratio:2;background:#ede6da;box-shadow:0 6px 20px #49351726;margin-top:12px;isolation:isolate}.photo-transfer-preview>svg{display:block;position:absolute;inset:0;width:100%;height:100%}.photo-transfer-preview>svg:first-child{pointer-events:none}.transfer-photo-overlay{pointer-events:none}.transfer-photo-target{pointer-events:all;cursor:pointer;outline:none}.transfer-photo-target rect{fill:transparent;stroke:#a98a52;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:5 4;opacity:.7}.transfer-photo-target:hover rect,.transfer-photo-target:focus-visible rect,.transfer-photo-target[aria-pressed=true] rect{fill:#cfad6230;stroke:#956628;stroke-width:4;stroke-dasharray:none;opacity:1}.photo-transfer-help{font-size:13px;line-height:1.55;min-height:42px;margin:14px 0;color:#6a563d}.photo-transfer-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;border-top:1px solid #e6dccc;padding-top:14px}.photo-transfer-actions button{min-height:44px;font-size:13px}.photo-transfer-actions .text-button{margin-right:auto}.photo-transfer-actions button:disabled{opacity:.45;cursor:default}
#thumbs button.photo-transfer-drop{outline:3px solid #7b9a6c;background:#f0f5e8;position:relative}#thumbs button.photo-transfer-blocked{outline:3px solid #a05858;position:relative}#thumbs button[data-transfer-label]::after{content:attr(data-transfer-label);position:absolute;inset:auto 3px 29px;background:#355a36;color:white;border-radius:5px;padding:6px 3px;font:11px/1.3 system-ui;white-space:normal;pointer-events:none;z-index:3}#thumbs button.photo-transfer-blocked::after{background:#843e3e}.photo-transfer-ghost{position:fixed;z-index:9999;width:110px;padding:6px;background:#fffaf0;border:2px solid #af8b4e;border-radius:10px;box-shadow:0 8px 24px #1a120a55;pointer-events:none;transform:rotate(-3deg)}.photo-transfer-ghost img{display:block;width:100%;height:65px;object-fit:contain;background:#eae2d4;border-radius:5px}.photo-transfer-ghost span{display:block;font:11px/1.3 system-ui;text-align:center;color:#4e3c24;margin-top:4px}
@media(max-width:700px){.photo-transfer-dialog{width:calc(100vw - 20px);padding:14px;max-height:94dvh;border-radius:12px}.photo-transfer-dialog .preview-header strong{font-size:21px}.photo-transfer-dialog select{font-size:16px}.photo-transfer-source p,.photo-transfer-help{font-size:12px}.photo-transfer-source img{width:44px;height:58px}.photo-transfer-actions{display:grid;grid-template-columns:1fr 1fr}.photo-transfer-actions .text-button{grid-column:1/-1;grid-row:2;margin:0}.photo-transfer-actions button{min-width:0;white-space:normal;font-size:12px;padding:9px}.photo-transfer-hint{font-size:12px}.photo-transfer-preview{margin-left:0;margin-right:0}}

/* Keep the per-spread decoration controls comfortable to tap. */
#spreadDividerTools summary,#spreadDividerTools .toggle-row,#dividerFirstOnly{min-height:44px}

/* Selection is an editor overlay; it never appears in album previews or print. */
#canvas.box-selecting,#canvas.box-selecting *{cursor:crosshair!important}
#boxSelectPhotos[aria-pressed=true]{background:#dcebf3;border-color:#397493;color:#214f68}
.photo-group-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:8px 30px 0;padding:9px 12px;border:1px solid #b9cfdc;border-radius:9px;background:#f1f7fa;color:#28536b;font-size:11px;flex-shrink:0}
.photo-group-controls[hidden]{display:none}.photo-group-controls strong{white-space:nowrap}.photo-group-controls>span{flex:1;min-width:180px;line-height:1.5}.photo-group-controls button{border:1px solid #b9cfdc;border-radius:6px;background:white;padding:6px 10px;min-height:34px;color:#28536b;font-size:11px}
@media(max-width:700px){.photo-group-controls{margin:8px 14px 0;font-size:12px}.photo-group-controls button,#boxSelectPhotos{min-height:44px;font-size:12px}.photo-group-controls>span{flex-basis:100%}}

/* Verified public font pack: real outlines for legacy aliases. */
@font-face{font-family:"Album-classic";src:url("/assets/fonts/timesitalic.ttf") format("truetype");font-style:italic;font-display:block}
@font-face{font-family:"Album-clean";src:url("/assets/fonts/arial.ttf") format("truetype");font-display:block}
