@font-face{font-family:Nunito;src:url(/brand/nunito-semibold.ttf)}*{box-sizing:border-box}body{margin:0;background:#fbf8ef;color:#253c34;font:16px/1.5 Nunito,system-ui,sans-serif}header{display:flex;justify-content:space-between;align-items:center;padding:1.05rem max(5vw,calc((100vw - 1050px)/2));border-bottom:1px solid #c9cabe}header span,.fine,#count,#position{font-size:.86rem;color:#526052}.wordmark{font: bold 1.35rem Georgia,serif;color:inherit;text-decoration:none}main{max-width:900px;margin:auto;padding:clamp(32px,6vw,68px) 22px 78px}.eyebrow,legend,.field,.settings label{font-weight:bold}.eyebrow{font-size:.73rem;letter-spacing:.14em;color:#526554;margin:0 0 .7rem}h1,h2{font-family:Georgia,serif;font-weight:normal;line-height:1.1;margin:0}h1{font-size:clamp(2.6rem,7vw,4.8rem);letter-spacing:-.045em}h2{font-size:clamp(1.6rem,4vw,2.25rem)}.intro{font-size:1.13rem;max-width:590px}.drop{margin:32px 0 8px;padding:clamp(20px,4vw,40px);display:flex;align-items:center;gap:clamp(20px,5vw,50px);border:1px dashed #889a81;background:#ebefdf;border-radius:10px}.drop p{margin:7px 0 18px}.drop.active{outline:3px solid #526554}.stamp{display:grid;place-items:center;background:#fff8e5;border:6px double #869179;font:3rem Georgia;width:74px;height:94px;transform:rotate(-6deg);flex-shrink:0}.btn,.textbtn,select,input{font:inherit}.btn{background:#fffaf0;border:1px solid #8b9587;padding:.66rem 1rem;border-radius:7px;color:#253c34;cursor:pointer;font-weight:bold}.primary{background:#264b3b;color:white;border-color:#264b3b}.btn:disabled,button:disabled{opacity:.45;cursor:default}.picker{position:relative;display:inline-block;cursor:pointer}.picker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.picker:focus-within,:focus-visible{outline:3px solid #a94929;outline-offset:3px}.fine{margin:8px 0}.sectionhead{border-top:1px solid #c9cabe;padding-top:26px;margin:34px 0 18px;display:flex;align-items:end;justify-content:space-between}.settings,.foot,nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.settings{justify-content:space-between}select,.field input,.photo input{border:1px solid #a1a699;background:white;color:#253c34;border-radius:6px;padding:.45rem}.settings select,.field input{display:block;margin-top:4px}.field input{width:100%;max-width:470px}.check input{accent-color:#264b3b}ol{display:grid;padding:0;list-style:none;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:14px}.photo{border:1px solid #d4d5c8;border-radius:8px;padding:12px;background:#fffcf5;min-width:0}.photo img{width:100%;height:135px;object-fit:contain;background:#eeeadd}.photo b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo label{font-size:.85rem;display:block;margin-top:7px}.photo input{display:block;width:100%}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.actions button,.textbtn{background:none;color:#325540;border:0;text-decoration:underline;cursor:pointer;padding:5px 0}.actions button{font:inherit;font-size:.85rem}fieldset{margin:20px 0;border:0;padding:0}#layouts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.layout{border:1px solid #b9c1b0;border-radius:6px;background:#fffaf0;color:inherit;padding:8px;cursor:pointer;min-width:0;font:inherit}.layout[aria-pressed=true]{border:3px solid #31563f;padding:6px}.cover{background:#244b3d;color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:8%;gap:4%;aspect-ratio:1;overflow:hidden}.cover img{object-fit:contain;min-height:0;width:100%;flex:1}.cover strong{font-family:Georgia,serif;overflow-wrap:anywhere;line-height:1.1;text-align:center}.gallery{background:#ebe9db;color:#374e3e}.gallery img{background:white;padding:5%;border:1px solid #bdc0b3}.scrapbook{background:#eee0c7;color:#473f30}.scrapbook img{background:#fffdf8;padding:4%;transform:rotate(-3deg);width:88%;box-shadow:1px 3px 6px #0003}.layout span{display:block;margin-top:5px}.foot{justify-content:space-between}.textbtn{font:inherit}#viewer h1{font-size:clamp(2rem,5vw,3.3rem);margin:18px 0}#leaf{background:#f1ecdf;border:1px solid #bfc2b5;padding:clamp(12px,3vw,28px);border-radius:4px;max-width:650px;margin:auto}#leaf .cover{font-size:clamp(1.5rem,4vw,3rem)}figure{margin:0;text-align:center}figure img{width:100%;height:min(55vh,480px);object-fit:contain}figcaption{white-space:pre-wrap;margin-top:10px;overflow-wrap:anywhere}nav{justify-content:center;margin:16px}dialog{border:1px solid #838f80;border-radius:12px;padding:24px;max-width:min(420px,90vw);background:#fbf8ef;color:inherit}dialog::backdrop{background:#24372b70}#error{color:#873d25}#status{font-size:.88rem}[hidden]{display:none!important}@media(max-width:520px){.stamp{display:none}#layouts{gap:5px}.layout{font-size:.8rem}.photo{padding:9px}ol{grid-template-columns:1fr 1fr}.photo img{height:106px}.settings{align-items:end}main{padding-inline:16px}}

.album-share { margin-top: 1.5rem; }
.album-share [role="status"] { display:block; overflow-wrap:anywhere; }

.result{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:28px 0;padding:22px;border:1px solid #aaa993;background:#fffaf0;border-radius:10px}
.result p:last-child{margin:6px 0 0}.result a{text-decoration:none;min-height:46px}.custom{border-top:1px solid #c9cabe;padding:4px 0}
.custom summary{font:bold 1.05rem Nunito,sans-serif;padding:15px 0;cursor:pointer}.custom summary span{font-size:.8rem;color:#546055;margin-left:.4rem}
.cover-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:8px 0 20px}.cover-pair .cover{width:100%;border:1px solid #9c9c8c}.cover-pair select{width:100%}.cover-pair label{display:block;margin-top:8px;font-weight:bold}
.layout, .actions button, select, .field input, .textbtn{min-height:44px}
.layout[aria-pressed=true]{background:#eaf0dd}.photo label input{font-size:16px}
#layouts{max-width:460px}.field small{font-weight:normal}.foot{margin-top:18px}
@media(max-width:520px){.result{padding:16px}.result a{width:100%;text-align:center}.cover-pair{gap:10px}.cover-pair select{max-width:100%;font-size:16px}}

/* The desk reaches every edge. The editor sits on its own bordered sheet. */
body.album-desk { min-height:100vh; min-height:100dvh; background:#b9d3c4 url("/brand/workshop/linen.png") repeat; }
.album-desk > header { background:#fffaf0; border-bottom:1px solid #6d8174; }
.album-desk main { max-width:960px; padding:clamp(18px,4vw,56px) clamp(12px,3vw,32px) 48px; }
.album-desk .album-workshop { background:#fffaf0 url("/brand/workshop/slip.png") repeat; padding:clamp(18px,4vw,44px); border:1.5px solid #435c4c; border-radius:7px 12px 8px 11px; box-shadow:3px 4px 0 #31433838; }
.sample-album { display:flex; align-items:center; gap:1.15rem; margin:1.5rem 0; text-align:start; }
.sample-album img { width:clamp(80px,17vw,145px); height:auto; border:5px solid #fffdf4; transform:rotate(-3deg); box-shadow:2px 3px 0 #34493438; }
.sample-album figcaption { margin:0; white-space:normal; }
.sample-album b,.sample-album span { display:block; }
.sample-album b { font:700 1.15rem "Kevin Sans",system-ui; }
.print-card { padding:clamp(16px,3vw,28px); margin-block:1.25rem; background:#edf1de; border:1px solid #718372; border-radius:8px 12px; }
.print-card label { display:block; margin:1rem 0; }
.print-card .btn { display:inline-flex; min-height:44px; align-items:center; text-decoration:none; }
.print-card a { margin:.25rem .25rem .25rem 0; }
.print-card [hidden] { display:none; }
.album-desk #status:not(:empty),.album-desk #error:not(:empty) { padding:.75rem 1rem; background:#fffaf0; }
@media(max-width:390px){.sample-album {gap:.75rem} .print-card .btn {width:100%}}

/* A quiet product card: offer first, optional production details second. */
.print-offer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.print-description,.print-purchase{min-width:0}
.album-workshop .print-card h2{font-size:clamp(1.65rem,3.3vw,2.5rem);line-height:1.15;max-width:12em}
.print-card .eyebrow{font-size:.7rem;margin-bottom:10px}
.print-specs{font:1rem/1.55 Nunito,system-ui,sans-serif;margin:12px 0 0;color:#425345}
.print-purchase{text-align:center;padding-inline-start:24px;border-inline-start:1px solid #71837255}
.print-card .print-price{font:2.7rem/1.1 "Kevin Sans",Nunito,sans-serif;margin:0 0 5px;color:#253c34}
.print-price span{font: .85rem Nunito,system-ui,sans-serif}
.print-purchase .btn{margin-top:12px;justify-content:center;white-space:normal;font-size:1rem}
.print-card .print-reassurance{font-size:.78rem;margin:10px 0 0}
.print-card .print-page-note{font:.9rem/1.5 Nunito,system-ui,sans-serif;margin:22px 0 0;padding:12px 0;border-block:1px solid #71837255;color:#354b3c}
.print-details{font:.86rem/1.6 Nunito,system-ui,sans-serif}
.print-details summary{cursor:pointer;min-height:44px;display:list-item;padding:12px 0;text-decoration:underline;text-underline-offset:3px}
.print-details p{max-width:64ch;margin:0 0 12px}
.print-card #print-status:empty{display:none}
.print-card #print-status:not(:empty){padding:12px 14px;margin:8px 0 0;border-radius:5px;background:#fffaf0;border-inline-start:3px solid #8a623d;font-size:.85rem}
@media(max-width:640px){.print-offer{grid-template-columns:1fr;gap:20px}.print-purchase{text-align:start;padding:0;border:0}.print-purchase .btn{width:100%}.print-card .print-price{font-size:2.2rem}.print-card h2{max-width:none}.print-card .print-page-note{margin-top:18px}}

.print-minimum{margin:12px 0;padding:12px 14px;background:#fff2d6;border-inline-start:3px solid #966022;border-radius:4px;color:#513c23;font:.88rem/1.5 Nunito,system-ui,sans-serif}.print-minimum p{margin:0}.print-minimum .textbtn{color:#513c23;font-weight:bold;margin-top:4px;text-underline-offset:3px}
