*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#25231f;background:#e8e5de}button,input{font:inherit}.topbar{height:52px;background:#24231f;color:#f5f1e7;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #111;position:relative}.brand{display:flex;gap:11px;align-items:center;font-weight:650;letter-spacing:.01em}.brand small{opacity:.45;font-weight:500}.brandLogoLink{display:block;width:30px;height:30px;flex:0 0 30px;border-radius:15px}.brandLogo{display:block;width:30px;height:30px}.activePhotoIndicator{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:baseline;gap:9px;max-width:42vw;white-space:nowrap;color:#d8d3ca;pointer-events:none}.activePhotoIndicator strong{font-size:11px;color:#f1c66f;font-weight:700}.activePhotoIndicator span{font-size:10px;color:#8f8b83}.mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid #777064;border-radius:4px;font:700 11px Georgia,serif}.top-actions{display:flex;gap:8px}.topbar button{border-radius:5px;padding:9px 14px;border:1px solid #68645c;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.ghost{background:transparent;color:#eee9df}.ghost:hover{background:#34322d;border-color:#8a8479;color:#fff}.primary{background:#e8b557;color:#211f1b;border-color:#e8b557!important;font-weight:700}.primary:hover{background:#f2c66e;border-color:#f2c66e!important;box-shadow:0 0 0 2px rgba(242,198,110,.16)}.app{height:calc(100vh - 52px);display:grid;grid-template-columns:116px 1fr 330px}.rail{background:#302f2b;border-right:1px solid #1e1d1a;padding:14px 8px;display:flex;flex-direction:column;gap:5px}.tool{border:0;background:transparent;color:#aaa69e;border-radius:7px;padding:13px 5px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.tool span{display:block;font:italic 18px Georgia,serif;margin-bottom:5px;color:#77736b}.tool.active{background:#403e38;color:white}.tool.active span{color:#e8b557}.workspace-wrap{min-width:0;display:grid;grid-template-rows:54px 1fr 34px}.workspace-head,.status{display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#dcd9d2;border-bottom:1px solid #c7c3ba;font-size:12px}.workspace-head strong{margin-right:12px}.workspace-head span{color:#77736b}.bg-switch{display:flex;gap:3px}.bg-switch button{border:1px solid #c2beb5;background:#eeeae2;padding:5px 8px;border-radius:4px;font-size:10px}.bg-switch button.selected{background:#5c5850;color:white}.workspace{position:relative;overflow:hidden;min-height:300px}.checker{background-color:#d7d4cc;background-image:linear-gradient(45deg,#c9c6be 25%,transparent 25%),linear-gradient(-45deg,#c9c6be 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#c9c6be 75%),linear-gradient(-45deg,transparent 75%,#c9c6be 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}.workspace.light{background:#efede8}.workspace.dark{background:#5c5a55}#preview{width:100%;height:100%;display:block}.drop-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;pointer-events:none;color:#4d4a43}.drop-hint strong{font:italic 27px Georgia,serif}.drop-hint span{font-size:12px;color:#77736b}.drop-hint button{pointer-events:auto;margin-top:8px;padding:9px 15px;border:1px solid #8e897e;background:#f3f0e8;border-radius:5px}.drop-hint.hidden{display:none}#lightControl{position:absolute;left:22%;top:20%;width:34px;height:34px;border:1px solid rgba(70,65,55,.35);background:rgba(245,196,90,.8);border-radius:50%;display:grid;place-items:center;cursor:grab;box-shadow:0 2px 10px #0002;user-select:none}.status{border-top:1px solid #c7c3ba;border-bottom:0;color:#6d6961;gap:14px}.preview-zoom{display:flex;align-items:center;justify-content:center;gap:7px;min-width:250px;color:#6d6961}.preview-zoom>span{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.preview-zoom input[type=range]{width:128px;margin:0;accent-color:#9b783b}.preview-zoom output{width:38px;text-align:right;font-variant-numeric:tabular-nums}.preview-zoom button{border:1px solid #c2beb5;background:#eeeae2;color:#5c5850;padding:3px 6px;border-radius:4px;font-size:10px;cursor:pointer}.inspector{background:#f2efe8;border-left:1px solid #c6c1b7;overflow:auto}.panel{display:none;padding:24px 22px}.panel.active{display:block}.eyebrow{font-size:10px;letter-spacing:.18em;color:#9a7b42;margin:0 0 5px}.panel h2{font:italic 31px Georgia,serif;margin:0 0 7px;font-weight:500}.intro{font-size:12px;line-height:1.55;color:#706c64;margin:0 0 24px}.panel label{display:block;font-size:12px;font-weight:650;margin:19px 0}.panel output{float:right;font-weight:500;color:#77736b}.panel input[type=range]{width:100%;margin-top:9px;accent-color:#9b783b}.cards{display:grid;gap:8px;margin-bottom:26px}.card{border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;padding:10px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.card.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e}.mini{width:38px;height:46px;border:1px solid #aaa49a;background:#e9e4d9;position:relative}.mini:after{content:"";position:absolute;left:5px;right:5px;top:5px;height:27px;background:#777}.card b{display:block;font-size:12px}.card small{color:#8b867d}.seedbox{margin-top:27px;border-top:1px solid #d3cec5;padding-top:16px;display:grid;grid-template-columns:1fr auto;gap:4px 10px;font-size:11px}.seedbox strong{font-family:monospace}.seedbox button{grid-column:1/-1;margin-top:8px;padding:8px;background:#e4e0d7;border:1px solid #c5c0b6;border-radius:5px}.wide{width:100%;padding:9px;background:#e4e0d7;border:1px solid #c5c0b6;border-radius:5px}@media(max-width:1100px){.activePhotoIndicator span{display:none}}@media(max-width:1000px){.activePhotoIndicator{display:none}}@media(max-width:850px){.activePhotoIndicator{display:none}.app{grid-template-columns:84px 1fr}.inspector{position:absolute;right:0;top:52px;bottom:0;width:290px;box-shadow:-8px 0 30px #0002}.tool{font-size:9px}.workspace-head span{display:none}.status{padding:0 8px}.status>#formatReadout{display:none}.preview-zoom{min-width:0;flex:1}.preview-zoom input[type=range]{width:min(128px,35vw)}}
.modegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 20px}.mode,.bgmode{padding:10px 5px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer}.mode b,.mode small,.bgmode b,.bgmode small{display:block}.mode b,.bgmode b{font-size:11px}.mode small,.bgmode small{font-size:9px;color:#8b867d;margin-top:3px}.mode.active,.bgmode.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e}.objectbox{border:1px solid #d1ccc2;border-radius:6px;background:#faf8f3;overflow:hidden}.objecthead{display:flex;justify-content:space-between;align-items:center;padding:8px 9px;border-bottom:1px solid #ded9cf;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.objecthead button{border:0;background:transparent;color:#8b6a31;font-weight:700;cursor:pointer}.objrow{display:flex;align-items:center;gap:8px;width:100%;padding:8px 9px;border:0;border-bottom:1px solid #e5e0d7;background:transparent;text-align:left;cursor:pointer;font-size:11px}.objrow:last-child{border-bottom:0}.objrow.active{background:#e9e1d2}.objthumb{width:20px;height:25px;border:1px solid #aaa;background:#f3eee3;position:relative}.objthumb.photo:after{content:"";position:absolute;inset:3px 3px 8px;background:#777}.objectActions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0 20px}.objectActions button{font-size:10px;padding:7px;border:1px solid #ccc6bb;background:#e9e5dc;border-radius:4px}.checkrow{display:flex;align-items:center;gap:8px;margin:20px 0;font-size:12px}.checkrow label{margin:0}.bgmodes{grid-template-columns:1fr 1fr}.workspace.texture-solid{background-image:none}
.finishgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 22px}.finish{padding:10px 4px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer}.finish b,.finish small{display:block}.finish b{font-size:11px}.finish small{font-size:9px;color:#8b867d;margin-top:3px}.finish.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e}.objrow .objmeta{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}.objrow .objhint{font-size:9px;color:#9b958b}.objrow:hover .objhint{color:#8b6a31}

.objcopy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.objcopy b{font-size:11px;font-weight:500;line-height:1.2}
.objcopy small{display:block;margin-top:2px;font-size:9px;line-height:1.2;color:#99938a}

.materialPresets{display:grid;grid-template-columns:1fr;gap:6px;margin:10px 0 22px}
.materialPreset{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid #d1ccc2;background:#f7f4ed;border-radius:6px;text-align:left;cursor:pointer}
.materialPreset:hover{border-color:#ad9c7c}
.materialPreset b{font-size:11px;font-weight:600}
.materialPreset small{font-size:9px;color:#8b867d;text-align:right}
.materialPreset.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}

/* 01E: keep the new surface controls visually grouped without adding UI chrome. */
#reflectionSize,#laminateCharacter{accent-color:#9b783b}

.reflectionModes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:2px 0 18px}
.reflectionMode{padding:9px 8px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer}
.reflectionMode b,.reflectionMode small{display:block}
.reflectionMode b{font-size:11px}
.reflectionMode small{margin-top:3px;font-size:9px;color:#8b867d}
.reflectionMode.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e}

.filmPresets{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 18px}
.filmPreset{padding:9px 8px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer;text-align:left}
.filmPreset b,.filmPreset small{display:block}.filmPreset b{font-size:11px}.filmPreset small{font-size:9px;color:#8b867d;margin-top:3px}
.filmPreset.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e}

#chemistryCharacter{width:100%;margin-top:9px;padding:8px 9px;border:1px solid #c9c4ba;border-radius:5px;background:#faf8f3;color:#34312b}

.materialSubhead{font-size:13px;line-height:1.2;letter-spacing:.13em;color:#8d6a2f;margin:30px 0 13px;padding-top:15px;border-top:1px solid #d4cec3;font-weight:750}
.tapeModes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px}
.tapeMode{padding:9px 6px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer;text-align:center}
.tapeMode b,.tapeMode small{display:block}.tapeMode b{font-size:10px}.tapeMode small{font-size:8px;color:#8b867d;margin-top:3px}
.tapeMode.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e}

.physicalReadout{display:flex;justify-content:space-between;gap:10px;padding:8px 0 2px;font-size:10px;color:#77736b}
.physicalReadout strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600;color:#4e4a43}


/* 01K.9 — real fingerprint atlas handling */
.fingerprintSubhead{margin-top:30px}
.fingerprintCoverageModes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 10px}
.fingerprintCoverage{padding:9px 5px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer;text-align:center}
.fingerprintCoverage b{display:block;font-size:9px;line-height:1.2}
.fingerprintCoverage.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}

/* 01L.2 — Speckled Paper is a distinct background stock, not a generic noise filter. */
.speckledPaperMode{grid-column:1/-1}

/* 01L.3 — per-object tape targeting */
.tapeTargetLabel{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#8b867d;margin:2px 0 6px}
.tapeTargetModes{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:6px;margin:0 0 10px}
.tapeTarget{padding:7px 5px;border:1px solid #d1ccc2;background:#f7f4ed;border-radius:6px;cursor:pointer;text-align:center;min-width:0}
.tapeTarget b{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tapeTarget.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}


/* 01M — physical print styles and photographic treatments */
.formatSubhead{font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.14em;color:#8d6a2f;margin:22px 0 9px;font-weight:750}
.formatSubhead.compact{margin-top:24px}
.printStyles{display:grid;grid-template-columns:1fr;gap:6px;margin:4px 0 18px}
.printStyle{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 10px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer;text-align:left}
.printStyle b{font-size:11px}.printStyle small{font-size:9px;color:#8b867d;text-align:right}.printStyle.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}
.photoTreatments{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 10px}
.photoTreatment{padding:9px 5px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer;text-align:center}
.photoTreatment b,.photoTreatment small{display:block}.photoTreatment b{font-size:10px}.photoTreatment small{font-size:8px;color:#8b867d;margin-top:3px;line-height:1.25}.photoTreatment.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}
#borderWidthRow[hidden],#fullBleedRow[hidden],#cornerRadiusRow[hidden]{display:none}

.mini.vintage:after{inset:5px;height:auto}

/* 01M.1 — print border authoring */
.printOptionRow{margin:14px 0 4px}.printOptionRow input{accent-color:#9b783b}


/* 01M.7 — composition canvas sizing */
.canvasSizeGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 10px}
.canvasSize{padding:9px 8px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer;text-align:left}
.canvasSize b,.canvasSize small{display:block}
.canvasSize b{font-size:11px}
.canvasSize small{font-size:9px;color:#8b867d;margin-top:3px}
.canvasSize.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}
.minorNote{font-size:11px;line-height:1.45;color:#8a847a;margin:-2px 0 14px}


/* 01M.10 — wider navigation rail */
/* Preserve the established rail typography; give labels enough physical width instead of shrinking them. */


/* 01M.13 — per-photo film targeting */
.filmTargetLabel{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#8b867d;margin:2px 0 6px}
.filmTargetModes{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:6px;margin:0 0 14px}
.filmTarget{padding:7px 5px;border:1px solid #d1ccc2;background:#f7f4ed;border-radius:6px;cursor:pointer;text-align:center;min-width:0}
.filmTarget b{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.filmTarget.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}.filmReset{margin:5px 0 4px;text-align:left;cursor:pointer}.filmReset b,.filmReset small{display:block}.filmReset b{font-size:11px}.filmReset small{font-size:9px;line-height:1.35;color:#7f7a71;margin-top:3px}.filmReset:hover{background:#eee7d9;border-color:#ad8a4d}

/* 01M.20 — standard photographic print orientation */
#printOrientationControls[hidden]{display:none}
.printOrientationModes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 18px}
.printOrientation{padding:9px 8px;border:1px solid #d1ccc2;background:#faf8f3;border-radius:6px;cursor:pointer;text-align:left}
.printOrientation b,.printOrientation small{display:block}
.printOrientation b{font-size:11px}
.printOrientation small{font-size:9px;color:#8b867d;margin-top:3px}
.printOrientation.active{border-color:#9d7b3e;box-shadow:inset 0 0 0 1px #9d7b3e;background:#efe7d7}
