:root{--ink:#252e28;--muted:#7a8078;--paper:#f6f4ee;--line:#dedfd5;--accent:#cfdfb4;--white:#fffefb}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:8px;padding:10px 15px;transition:.18s}button:hover{background:#e9eddf;border-color:#a9b994}button:disabled{opacity:.45;cursor:wait}button.primary{background:var(--ink);color:white;border-color:var(--ink)}button.primary:hover{background:#405341}button.accent{background:var(--accent);border-color:var(--accent)}button.small{padding:6px 10px;font-size:12px}button.active{background:var(--ink);color:white}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px;background:white;color:var(--ink)}input[type=color]{height:42px;padding:4px}input[type=range]{padding:0}label{display:block;font-size:12px;margin:15px 0 5px;color:#5c655b}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:normal}h1{font-size:clamp(34px,4vw,56px);line-height:1.1;letter-spacing:-1.5px}h2{font-size:28px}h3{font-size:14px}small,.muted{color:var(--muted)}.brand{font-size:21px;font-weight:800;letter-spacing:-1px}.brand span{font-weight:400;font-size:12px;letter-spacing:2px;margin-left:12px;color:var(--muted)}.topbar{height:76px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--white);gap:16px}.row{display:flex;align-items:center;gap:10px}.wrap{max-width:1300px;margin:auto;padding:48px 40px}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#6b7564;margin-bottom:18px}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:35px;align-items:center;margin-bottom:42px;padding:20px 0 35px;border-bottom:1px solid var(--line)}.hero p{max-width:480px;color:#71786d;font-size:16px}.book-scene{height:240px;background:#e9e8df;display:flex;align-items:center;justify-content:center;border-radius:20px;overflow:hidden}.samplebook{width:220px;height:190px;background:#aaa08c;box-shadow:12px 14px 0 -6px #e1ddce,22px 30px 30px #27342628;transform:rotate(-10deg);display:grid;place-items:center;color:#eee8d9;border-left:8px solid #8f8774;font:22px Georgia,serif;text-align:center}.samplebook small{display:block;font:9px system-ui;letter-spacing:2px;color:#e5dfd0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}.card{border:1px solid var(--line);border-radius:12px;background:var(--white);overflow:hidden;cursor:pointer;text-align:left;padding:0}.card-art{height:160px;background:#eae9df;display:grid;place-items:center}.mini-book{width:115px;height:108px;box-shadow:8px 9px 0 -5px #fff,10px 13px 12px #0002;border-left:5px solid #0002;transform:rotate(-7deg)}.card-body{padding:20px}.card-body h3{font-size:17px;margin-bottom:6px}.badge{padding:4px 9px;border-radius:20px;background:#edf0e7;font-size:10px;text-transform:uppercase;letter-spacing:.7px}.empty{border:1px dashed #bdc6b5;padding:40px;border-radius:12px;background:#f0f2e9;text-align:center}.login{max-width:430px;margin:9vh auto;padding:36px}.login .brand{margin-bottom:45px}.login button{width:100%;margin-top:20px}.editor{display:grid;grid-template-columns:225px minmax(0,1fr) 235px;min-height:calc(100vh - 76px)}.sidebar{padding:22px 18px;background:var(--white);border-right:1px solid var(--line);overflow:auto;max-height:calc(100vh - 76px)}.inspector{border-left:1px solid var(--line);border-right:0}.photos{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:16px}.photo{position:relative;border-radius:6px;overflow:hidden;background:#eceee7;padding:0;border:2px solid transparent;aspect-ratio:1}.photo img{width:100%;height:100%;object-fit:cover}.photo.selected{border-color:#769652}.photo .used{position:absolute;bottom:3px;right:3px;color:white;background:#293c28c9;border-radius:4px;padding:0 5px}.workspace{min-width:0;padding:25px 30px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px;flex-wrap:wrap}.stage{min-height:350px;display:flex;align-items:center;justify-content:center;padding:20px 0}.spread{width:100%;position:relative;background:white;box-shadow:0 18px 45px #22302016}.spread:after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#00000012;pointer-events:none}.frame{position:absolute;background:#f0f0e9;overflow:hidden;display:grid;place-items:center;cursor:pointer;color:#7d8777;border:1px dashed #d0d4c7;font-size:12px}.frame.filled{border:0}.frame.selected{outline:3px solid #91ad6f;z-index:2}.frame img{width:100%;height:100%;position:absolute;pointer-events:none}.cover{width:48%;position:relative;border-left:9px solid #0002;box-shadow:7px 8px 0 -3px #e5e1d5,18px 22px 40px #27342626;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;overflow:hidden;background-image:repeating-linear-gradient(93deg,#fff1 0,#fff1 1px,transparent 1px,transparent 3px)}.engraving{font:clamp(16px,2.3vw,32px)/1.35 Georgia,serif;color:#392e2677;text-shadow:0 1px 1px #ffffff60;white-space:pre-wrap;overflow-wrap:anywhere}.caption{text-align:center;font-size:11px;color:#858b80;margin:15px 0}.layouts{display:flex;justify-content:center;align-items:center;gap:12px;margin:18px 0}.filmstrip{display:flex;gap:10px;overflow-x:auto;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.thumb{min-width:91px;text-align:center;font-size:11px;padding:10px 7px}.thumb .icon{display:block;height:30px;font-size:22px}.hint{font-size:12px;color:#79816f;line-height:1.6}.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.divider{border:0;border-top:1px solid var(--line);margin:22px 0}.review-layout{max-width:1250px;margin:auto;padding:35px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px}.panel{background:var(--white);padding:24px;border:1px solid var(--line);border-radius:12px}.comment{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.comment p{margin:5px 0;white-space:pre-wrap}.comment small{font-size:10px}.notice{padding:12px;background:#eaf0df;border-radius:8px;font-size:12px;margin:14px 0}.danger{color:#9f4f3e}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#25392b;color:white;padding:13px 22px;border-radius:10px;box-shadow:0 10px 40px #0002;z-index:20;display:none;max-width:90vw}dialog{border:1px solid var(--line);border-radius:16px;padding:30px;max-width:620px;width:90vw;max-height:85vh}dialog::backdrop{background:#17271e66;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;gap:20px}a{color:#456138}.full{width:100%}.loading{padding:80px;text-align:center}@media(max-width:1050px){.editor{grid-template-columns:170px minmax(0,1fr)}.inspector{grid-column:1/-1;max-height:none;display:block}.inspector .fieldrow{max-width:400px}.workspace{padding:20px}.topbar{padding:15px;height:auto;min-height:76px;flex-wrap:wrap}}@media(max-width:680px){.hero{grid-template-columns:1fr}.book-scene{display:none}.wrap{padding:30px 20px}.editor{display:flex;flex-direction:column}.sidebar{max-height:240px;border-bottom:1px solid var(--line)}.photos{display:flex;overflow:auto}.photo{min-width:70px;width:70px;height:70px}.inspector{max-height:none}.workspace{padding:18px 12px}.stage{min-height:220px}.review-layout{display:block;padding:20px 12px}.review-layout>.panel{margin-top:25px}.topbar .brand span{display:none}.row{flex-wrap:wrap}.cover{width:65%}.login{margin-top:4vh}.filmstrip{margin-top:10px}.engraving{font-size:19px}}
/* Album Studio 2 — focused desktop workspace, independent Garoy identity. */
:root{--ink:#20252d;--muted:#737b87;--paper:#f1f3f6;--line:#dce0e6;--accent:#dbe9ff;--white:#fff;--blue:#286bdf}body{font-size:13px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}h1,h2{font-family:inherit;font-weight:600;letter-spacing:-1px}button{border-radius:6px;padding:8px 12px;transition:background .15s,border-color .15s}button:hover{background:#edf3fd;border-color:#98b6e7}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.primary:hover{background:#1958bd}button.accent{background:#e5efff;border-color:#b8cff1;color:#215eb7}button.active{background:#e7f0ff;color:#185cba;border-color:#80a9e5}button:disabled{cursor:default;opacity:.38}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px}input,select,textarea{border-radius:5px;padding:8px 10px}label{color:#606977}a{color:#286bdf}.brand{letter-spacing:-1.2px;font-size:24px}.brand span{font-size:9px;letter-spacing:1.6px;margin-left:10px}.topbar{height:66px;padding:0 24px}.eyebrow{color:#76808d;letter-spacing:1.4px;font-size:10px}.hint{color:#78818e;font-size:11px}.badge{background:#e8eef6;color:#526780}.login{background:white;max-width:440px;border:1px solid var(--line);border-radius:12px;padding:38px;box-shadow:0 14px 45px #27303d08}.login h1{font-size:40px}.login .brand{margin-bottom:40px}.login .eyebrow{margin-bottom:14px}.hero{padding:8px 0 30px;grid-template-columns:1.4fr 1fr}.hero h1{font-size:46px}.hero p{font-size:14px}.book-scene{background:linear-gradient(140deg,#dfe5ec,#e9ecf1);border-radius:9px;height:220px}.samplebook{font-family:Georgia,serif;background:#475b71;border-left-color:#354558}.grid{gap:18px}.card{border-radius:8px}.card:hover{box-shadow:0 8px 30px #26344813}.card-art{background:#e7ebf0}.card-body h3{font-size:16px}.empty{background:#f8faff;border-color:#bdcce0}.empty h2{font-size:23px}.notice{background:#edf3fc;color:#426084}.divider{margin:20px 0}.danger{color:#b24b4b}dialog{border-radius:12px;padding:28px;max-width:840px;background:#fff;color:var(--ink);box-shadow:0 30px 100px #07142640}dialog::backdrop{background:#121c2b80}.modal-head h2{font-size:24px}.modal-head button{align-self:start}#toast{background:#26364d;border-radius:6px;font-size:13px}.panel{border-radius:8px}.review-layout{max-width:1400px}.review-layout .stage{background:#e1e5eb;border-radius:8px;padding:30px 20px}.review-layout .spread:after{display:block}.review-layout .filmstrip{padding:16px 0}.review-layout .thumb{width:130px;min-width:130px}.review-layout .cover{max-width:340px}
/* Desktop editor shell */
.editor-top{height:64px;padding:0 18px;display:grid;grid-template-columns:260px 1fr auto;gap:16px}.editor-top .row{gap:7px}.editor-top .brand span{display:block;margin-left:1px;margin-top:-5px;font-size:8px;letter-spacing:1.8px}.project-heading{min-width:0}.project-heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.project-heading .hint{font-size:10px;margin-top:2px}.editor{display:grid;grid-template-columns:240px minmax(0,1fr) 260px;height:calc(100dvh - 64px);min-height:650px;overflow:hidden;background:#f4f5f7}.sidebar{padding:18px 14px;max-height:none;height:100%;overflow:auto;background:#f8f9fb;border-color:#d8dde4}.library-panel{display:flex;flex-direction:column;gap:13px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.panel-heading h3{margin:0;font-size:12px;font-weight:650}.counter{font-size:10px;background:#e8ecf1;border-radius:4px;padding:2px 6px;color:#737d8b}.search{font-size:11px;min-height:33px;background:#fff}.segmented{display:flex;border:1px solid var(--line);border-radius:5px;padding:2px;background:#e9edf2}.segmented button{flex:1;border:0;background:transparent;font-size:10px;padding:5px 4px;border-radius:3px;color:#6c7684}.segmented button.active{background:#fff;color:#235fae;box-shadow:0 1px 3px #0d1f3c1a}.photos{margin:0;gap:9px;align-content:start;overflow-y:auto;flex:1;min-height:150px;padding:2px}.photo{border:2px solid transparent;border-radius:4px;background:#e1e5eb;aspect-ratio:1/1.15;display:block;min-width:0}.photo img{object-fit:contain;height:calc(100% - 21px);display:block;padding:3px}.photo.selected{border-color:var(--blue);background:#e4edfc}.photo-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;line-height:19px;padding:0 4px;text-align:left;background:#f5f7fa;color:#727c8a}.photo .used{top:5px;right:5px;bottom:auto;border-radius:50%;width:17px;height:17px;line-height:17px;text-align:center;padding:0;font-size:10px;background:#356bb6}.photo-empty{grid-column:1/-1;text-align:center;padding:45px 5px;color:#8b95a4;font-size:11px;line-height:1.7}.photo-empty>span{display:block;font-size:32px;font-weight:200;margin-bottom:12px}.library-footer{border-top:1px solid var(--line);padding-top:13px}.library-footer p{font-size:9px;margin:8px 0 0;text-align:center}.workspace{display:flex;flex-direction:column;padding:0;min-width:0;min-height:0}.editor-tools{height:52px;min-height:52px;padding:0 16px;margin:0;flex-wrap:nowrap;background:#f5f6f8;border-bottom:1px solid #d6dce4}.editor-tools .row{gap:5px;flex-wrap:nowrap}.page-title{font-size:11px;font-weight:600;margin-right:7px;white-space:nowrap}.icon-button{width:29px;height:29px;min-width:29px;padding:0;display:inline-grid;place-items:center;font-size:20px;background:transparent;border-color:transparent}.tool-separator{height:19px;border-left:1px solid var(--line);margin:0 5px}.editor-tools .small{font-size:10px;padding:5px 8px}.canvas-surface{background:#343a44;flex:1;min-height:230px;display:flex;flex-direction:column;position:relative;overflow:hidden}.canvas-label{padding:17px 22px 0;color:#87909f;font-size:8px;letter-spacing:1.8px;display:flex;justify-content:space-between;gap:12px}.canvas-label span{letter-spacing:.5px;color:#959eac}.stage{min-height:0;position:relative}.canvas-surface .stage{flex:1;padding:28px 34px 12px;overflow:auto;display:flex;align-items:center;justify-content:flex-start;min-height:120px}.spread{box-shadow:0 6px 28px #11151d50;flex-shrink:0;margin:auto;max-height:none}.spread:after{display:none;background:#36435425}.show-guides .spread:after{display:block}.frame{background:#f0f2f5;border:1px dashed #ced4dd;color:#9ca6b3;font-size:11px}.frame.filled{background:#fff}.frame.selected{outline:2px solid #4e94ff;outline-offset:0}.crop-draggable{cursor:grab;touch-action:none}.crop-draggable:active{cursor:grabbing}.cover{margin:auto;max-width:360px;flex-shrink:0}.canvas-surface .layouts{margin:14px 0 17px;gap:14px;color:#f0f3f8}.canvas-surface .layouts strong{font-size:10px;font-weight:500}.canvas-surface .layouts .hint{font-size:9px;color:#9fa9b8;margin-top:2px}.canvas-surface .layouts button{background:#414a58;border:1px solid #535f6f;color:#e7edf6;width:33px;height:30px;padding:0;border-radius:5px}.canvas-surface .layouts button:hover{background:#526b90;border-color:#7c9cc9}.canvas-surface .caption{color:#a4adba}.canvas-controls{min-height:43px;padding:6px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#f4f6f8;border-bottom:1px solid var(--line)}.canvas-controls .hint{font-size:9px}.canvas-controls .row{gap:6px;flex-wrap:nowrap}.canvas-controls .small{font-size:10px;padding:4px 7px}.zoom-label{margin:0;font-size:10px}.canvas-controls select{font-size:10px;width:78px;padding:4px}.canvas-controls button[aria-pressed=true],#focus[aria-pressed=true]{color:#2166c4;border-color:#a9c2e6;background:#e7effb}.timeline{background:#f7f8fa;padding:12px 16px 10px;flex-shrink:0}.timeline-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.timeline-heading strong{font-weight:600}.timeline-heading .hint{font-size:10px}.timeline-heading button{font-size:10px;padding:4px 8px}.filmstrip{margin:0;border:0;padding:12px 1px 10px;gap:10px;align-items:stretch;min-width:0}.thumb{padding:5px;border:1px solid transparent;border-radius:5px;width:116px;min-width:116px;display:flex;flex-direction:column;align-items:center;gap:7px;background:transparent;color:#758091;font-size:9px;justify-content:flex-end}.thumb.active{background:#e8f0fc;border-color:#87ace6;color:#215fae}.thumb>span:last-child{display:block;font-size:9px;line-height:14px}.mini-spread{display:block;position:relative;width:100%;background:#fff;box-shadow:0 1px 4px #1a294922;overflow:hidden}.mini-spread:after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#0001}.mini-frame{position:absolute;display:block;background:#cbd3de;overflow:hidden}.mini-frame img{height:100%;width:100%;display:block}.mini-cover{display:grid;place-items:center;max-width:52%;width:52%;overflow:hidden;box-shadow:2px 2px 0 #fff,4px 4px 5px #1112;font-size:5px;white-space:pre-wrap;padding:2px;color:#2227}.timeline-actions{border-top:1px solid #e3e7ec;padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.timeline-actions button{background:transparent;font-size:9px;padding:4px 7px}.timeline-actions .row{gap:3px}.inspector{border-left:1px solid var(--line);padding:20px 17px}.inspector .eyebrow{font-size:9px;margin-bottom:8px}.inspector h3{font-size:12px;margin-bottom:14px}.inspector label{font-size:10px;margin-top:16px}.inspector select,.inspector textarea{font-size:11px}.inspector .hint{font-size:10px;line-height:1.65}.inspector input[type=range]{accent-color:var(--blue);height:14px}.template-section{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.template-section .panel-heading h3{margin:0}.template-section p{margin:8px 0 12px}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.template{padding:5px;background:#e9edf2;border:1px solid transparent;border-radius:4px}.template>span:last-child{font-size:9px;display:block;margin-top:5px;color:#7a8595}.template.active{background:#e3edfd;border-color:#6a9cde}.selected-filename{font-size:10px;color:#536377;overflow-wrap:anywhere;margin-top:15px}.quality-warning{color:#a96917!important;background:#fff3dd;padding:8px;border-radius:4px}.overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;background:#edf0f4;padding:20px;border-radius:8px;max-height:60vh;overflow:auto}.overview-grid .thumb{min-width:0;width:100%;padding:9px}.overview-grid .mini-cover{max-width:45%}.focus-mode{grid-template-columns:minmax(0,1fr)}.focus-mode>.sidebar{display:none}.focus-mode .canvas-surface .stage{padding-left:12%;padding-right:12%}
@media(min-width:1450px){.editor{grid-template-columns:270px minmax(0,1fr) 280px}.editor.focus-mode{grid-template-columns:minmax(0,1fr)}.photos{grid-template-columns:repeat(3,1fr)}.photo-name{font-size:8px}.canvas-surface .stage{padding-left:7%;padding-right:7%}}
@media(max-width:1150px){.editor{grid-template-columns:190px minmax(0,1fr) 220px}.editor.focus-mode{grid-template-columns:minmax(0,1fr)}.inspector{grid-column:auto;padding:16px 12px}.editor-top{grid-template-columns:190px 1fr auto}.editor-top .brand{font-size:21px}.canvas-controls>.hint{display:none}.editor-tools{padding:0 8px}.editor-tools .small{font-size:9px}.canvas-surface .stage{padding:22px 20px 10px}.timeline-heading .hint{display:none}.timeline{padding:10px}.thumb{width:96px;min-width:96px}.sidebar{padding:15px 10px}.editor-tools .row{gap:2px}}
@media(max-width:900px){.editor{grid-template-columns:170px minmax(0,1fr);height:auto;min-height:calc(100dvh - 64px);overflow:visible}.editor>.inspector{grid-column:1/-1;height:auto;display:block;padding:24px;columns:2;column-gap:40px;border-top:1px solid var(--line)}.inspector .template-section{break-inside:avoid}.workspace{min-height:650px}.library-panel{max-height:800px}.editor-top{grid-template-columns:auto 1fr auto;padding:0 12px;gap:12px}.editor-top .brand span{display:none}.editor-top #revisions{display:none}.editor-top .row{flex-wrap:nowrap}.editor-top #share{font-size:11px;padding:8px}.focus-mode>.inspector{display:none}.canvas-surface .stage{padding:25px 20px}.topbar:not(.editor-top){height:auto;min-height:64px;padding:15px}.editor-tools{height:52px}.overview-grid{gap:10px}}
@media(max-width:600px){.editor-top{display:flex;flex-wrap:wrap;height:auto;min-height:100px;padding:10px;gap:8px}.editor-top .project-heading{flex:1}.editor-top>.row:last-child{width:100%;justify-content:flex-end}.editor{display:flex;flex-direction:column;min-height:0}.library-panel{height:245px;max-height:245px;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px}.library-panel .photos{grid-column:1/-1;display:flex;min-height:100px;overflow:auto}.photo{width:75px;min-width:75px;height:90px}.photo img{height:65px}.photo-name{font-size:8px}.library-footer{display:none}.photo-tabs button{font-size:9px}.photo-empty{padding:12px;width:100%}.photo-empty>span{display:none}.workspace{min-height:520px}.editor-tools{padding:6px;gap:3px}.editor-tools .page-title{font-size:10px;margin:0}.editor-tools .icon-button{width:23px;min-width:23px}.editor-tools .tool-separator{display:none}.canvas-surface .stage{padding:24px 14px;min-height:190px}.canvas-label{padding:12px 14px 0;font-size:7px}.canvas-controls{padding:6px}.canvas-controls .small{font-size:9px}.canvas-controls .zoom-label{display:none}.canvas-controls select{width:67px}.editor>.inspector{columns:auto;padding:22px}.template-grid{grid-template-columns:repeat(3,1fr)}.timeline-actions .row{flex-wrap:wrap}.timeline-actions>button{white-space:nowrap}.hero h1{font-size:36px}.hero{display:block}.wrap{padding:30px 20px}.login{margin:4vh 16px;padding:28px}.review-layout .stage{padding:18px 12px}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.focus-mode .canvas-surface .stage{padding:22px 14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
