:root{color-scheme:dark;--bg:#101718;--card:#172022;--line:#2a3637;--txt:#f0f4f0;--muted:#97a8a4;--mint:#b7ebbf;--mint-dark:#31483a;--radius:16px;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 48% -200px,#203633 0,#101718 58%);color:var(--txt);font:14px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,-apple-system,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--mint)}.app-shell{max-width:1320px;margin:auto;padding:0 42px}.brandbar{height:81px;border-bottom:1px solid #2a3838;display:flex;align-items:center;justify-content:space-between}.brand{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;display:flex;align-items:center;gap:9px;font-size:20px;font-weight:700;letter-spacing:-.045em}.brand-icon{font-size:29px;line-height:1;color:var(--mint);transform:rotate(45deg)}.brand-accent{color:var(--mint)}.local-pill{display:flex;align-items:center;gap:9px;color:#aab9b5;font-size:9px;letter-spacing:.105em;font-weight:700;border:1px solid #334743;border-radius:30px;padding:7px 13px}.local-dot{width:6px;height:6px;background:#8eeeb4;border-radius:50%;box-shadow:0 0 14px #8eeeb487}.pill-sep{height:11px;width:1px;background:#405550;margin:0 5px}.hero{padding:63px 0 48px;max-width:780px}.eyebrow,.section-kicker{color:var(--mint);font-size:10px;font-weight:700;letter-spacing:.14em}.eyebrow{margin-bottom:19px}h1,h2,h3{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:-.04em}h1{font-size:clamp(38px,5.2vw,64px);line-height:1.09;margin:0;font-weight:600}h1 em{color:var(--mint);font-style:normal}h2{font-weight:600;font-size:21px;margin:5px 0 0}.hero p{max-width:580px;color:#a3b2af;font-size:15px;margin:23px 0 0;line-height:1.8}.workspace{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr);align-items:start;gap:24px}.left-column,.right-column{display:flex;flex-direction:column;gap:21px}.preview-card,.exact-card,.editor-card,.export-card{border:1px solid #304040;background:linear-gradient(145deg,#182324,#151e20);border-radius:var(--radius);overflow:hidden}.preview-card,.exact-card,.editor-card,.export-card{padding:24px}.card-head{display:flex;align-items:flex-start;justify-content:space-between}.preview-chip,.counter{font-size:10px;color:#b2c9bd;border:1px solid #4d665a;border-radius:5px;padding:5px 9px;font-weight:700;letter-spacing:.08em}.counter{font-size:11px;color:var(--mint);min-width:48px;text-align:center}.lock-symbol{font-size:24px;color:var(--mint)}.scene-wrap{height:367px;position:relative;display:flex;align-items:center;justify-content:center;user-select:none;touch-action:none}.glow-spot{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,#8cb59333,transparent 72%);filter:blur(22px);pointer-events:none}.cube-scene{width:100%;height:330px;perspective:780px;display:flex;align-items:center;justify-content:center;cursor:grab;position:relative}.cube-scene.dragging{cursor:grabbing}.cube{width:190px;height:190px;position:relative;transform-style:preserve-3d;transition:transform .03s linear}.cube-face{position:absolute;inset:0;background-color:#e1e4db;box-shadow:inset 0 0 0 10px #e8e8da,0 0 0 .3px #f9f9f0;backface-visibility:visible}.cube-face .face-art{position:absolute;inset:10px;background-size:cover;background-position:center;background-color:#bdc8b9;filter:grayscale(1) sepia(.2) contrast(.85) brightness(1.15);box-shadow:inset 0 0 30px #f0e8bf44}.cube-face.front{transform:translateZ(95px)}.cube-face.right{transform:rotateY(90deg) translateZ(95px)}.cube-face.left{transform:rotateY(-90deg) translateZ(95px)}.cube-face.top{transform:rotateX(90deg) translateZ(95px)}.cube-face.back{transform:rotateY(180deg) translateZ(95px);background:#141e1d;border:10px solid #e9e8da;display:grid;place-content:center}.back-empty{font-size:10px;color:#a0ada7;letter-spacing:.05em}.cube-face.bottom{transform:rotateX(-90deg) translateZ(95px);background:#d6dad0}.unlit .cube-face .face-art{filter:grayscale(1) brightness(.60);box-shadow:inset 0 0 25px #161c20aa}.scene-hint{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);color:#879e98;font-size:11px;white-space:nowrap}.preview-footer{border-top:1px solid var(--line);padding-top:15px}.preview-footer p{color:#7f9490;font-size:10px;margin:13px 0 0}.view-switch{display:flex;align-items:center;justify-content:space-between;gap:10px}.small-btn{background:#243332;border:1px solid #3b504a;border-radius:7px;color:#dce6de;padding:8px 10px;font-size:11px}.light-switch{display:flex;align-items:center;gap:9px;font-size:11px;color:#bdcfc6;cursor:pointer}.light-switch input{position:absolute;opacity:0}.toggle-track{width:33px;height:18px;background:#52635d;border-radius:20px;position:relative}.toggle-track:after{content:'';position:absolute;top:3px;left:3px;width:12px;height:12px;background:#fff;border-radius:50%;transition:.15s}.light-switch input:checked+.toggle-track{background:#64a47c}.light-switch input:checked+.toggle-track:after{left:18px}.spec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 12px;margin-top:27px}.spec-grid>div{display:flex;flex-direction:column;gap:5px}.spec-grid span{font-size:9px;font-weight:700;letter-spacing:.08em;color:#839c95}.spec-grid strong{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-weight:500;font-size:21px;letter-spacing:-.04em}.spec-grid small{font-size:12px;color:#afc1b5}.mechanic-note{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;display:flex;align-items:flex-start;gap:11px;color:#b1c2ba;font-size:11px;line-height:1.6}.mechanic-note span{color:var(--mint);font-size:20px;margin-top:-5px}.helper-copy{color:#92a7a0;font-size:12px;line-height:1.65;margin:16px 0 20px}.photo-list{display:flex;flex-direction:column;gap:11px}.photo-row{border:1px dashed #456158;background:#1d2a29;border-radius:10px;display:grid;grid-template-columns:21px 79px 1fr;gap:13px;align-items:center;padding:12px 13px;transition:border-color .2s}.photo-row.has-photo{border-style:solid;border-color:#5b836a}.photo-number{font-size:11px;color:#86a296;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;align-self:start;padding-top:4px}.crop-preview{width:79px;height:79px;border-radius:7px;background:#354640;position:relative;overflow:hidden;cursor:pointer}.crop-preview canvas{width:100%;height:100%;display:block;visibility:hidden}.has-photo .crop-preview canvas{visibility:visible}.empty-hint{position:absolute;inset:0;display:grid;place-content:center;font-size:29px;color:#739087}.has-photo .empty-hint{display:none}.photo-title{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;font-weight:600}.photo-desc{color:#7f958d;font-size:11px}.upload-btn{font-size:11px;border:1px solid #50685d;color:#c0dfc8;background:#2a3934;padding:5px 10px;border-radius:6px;margin-top:8px}.upload-btn:hover,.small-btn:hover{background:#354b3f}.crop-edit{display:none;grid-column:2/-1;padding:12px 5px 2px 0;grid-template-columns:1fr 1fr;gap:9px 17px;border-top:1px solid #3b5146;margin-top:3px}.has-photo .crop-edit{display:grid}.mini-control{display:flex;flex-direction:column;gap:3px;font-size:10px;color:#adbcaf}.mini-control input{width:100%;accent-color:#9fd4a9;cursor:pointer}.rotate-tools{display:flex;align-items:flex-end;gap:7px}.rotate-tools button{border:1px solid #516b5d;background:#2b3b34;border-radius:6px;color:#c9dccd;padding:5px 9px;font-size:11px}.export-card{padding-bottom:22px}.export-symbol{font-size:26px;color:var(--mint)}.format-options{display:flex;flex-direction:column;gap:10px;margin-top:23px}.format-choice{display:flex;align-items:center;gap:14px;padding:15px 16px;border:1px solid #364c44;background:#1d2a28;border-radius:10px;cursor:pointer}.format-choice.selected{border-color:#9ccb9f;background:#27372e}.format-choice input{position:absolute;opacity:0;pointer-events:none}.radio-dot{width:17px;height:17px;flex:0 0 17px;border:2px solid #82998d;border-radius:50%;display:grid;place-items:center}.selected .radio-dot{border-color:#b5eabc}.selected .radio-dot:after{content:'';width:7px;height:7px;border-radius:50%;background:#b5eabc}.format-text{display:flex;flex-direction:column;gap:3px}.format-text strong{font-size:13px}.format-text small{color:#99aea3;font-size:11px}.advanced{border-top:1px solid var(--line);margin-top:22px;padding-top:15px}.advanced summary{display:flex;justify-content:space-between;color:#c2d3c8;font-size:12px;cursor:pointer;list-style:none}.advanced summary::-webkit-details-marker{display:none}.advanced-inner{padding-top:17px;display:flex;flex-direction:column;gap:14px}.advanced-inner label{display:flex;flex-wrap:wrap;justify-content:space-between;font-size:11px;color:#c3d1cb}.advanced-inner label input[type=range]{width:100%;margin-top:6px;accent-color:#b5eabc}.advanced-inner output{color:var(--mint)}.invert-label{justify-content:flex-start!important;gap:8px}.invert-label input{accent-color:#b5eabc}.generate-button{width:100%;background:#b2eabb;color:#12251c;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:9px;padding:17px 20px;margin-top:22px}.generate-button:disabled{color:#84988c;background:#375344}.generate-button:not(:disabled):hover{background:#ccffd2}.arrow{font-size:20px}.status{text-align:center;font-size:11px;min-height:30px;color:#93a99a;margin-top:13px}.status.error{color:#ffb5a6}footer{color:#6f8b7e;border-top:1px solid #283733;margin-top:43px;padding:23px 0 28px;text-align:center;font-size:11px}button:focus-visible,input:focus-visible{outline:2px solid #bcf9c1;outline-offset:3px}
@media(max-width:980px){.app-shell{padding:0 23px}.workspace{grid-template-columns:1fr}.left-column{display:grid;grid-template-columns:1fr 1fr;align-items:start}.preview-card,.exact-card{height:100%}.scene-wrap{height:290px}.cube-scene{height:280px}.cube{transform-origin:center}.hero{padding:45px 0 40px}}@media(max-width:620px){.app-shell{padding:0 15px}.brandbar{height:69px}.brand{font-size:17px}.local-pill{font-size:0;gap:0;padding:9px}.local-dot{width:8px;height:8px}.pill-sep{display:none}.hero{padding:36px 0 30px}.hero p{font-size:13px}.workspace{gap:15px}.left-column{display:flex}.preview-card,.exact-card,.editor-card,.export-card{padding:18px}.scene-wrap{height:305px}.scene-hint{bottom:0}.spec-grid strong{font-size:18px}.photo-row{grid-template-columns:16px 67px 1fr;gap:10px;padding:9px}.crop-preview{width:67px;height:67px}.photo-title{font-size:13px}.crop-edit{grid-template-columns:1fr 1fr}.counter{font-size:10px}}


/* LithoCube 1.2: larger drag-to-select photo crop editor */
.open-crop-btn{display:inline-flex;margin:8px 0 0 8px;background:#b2eabb;color:#183025;border:0;border-radius:6px;padding:6px 10px;font-weight:700;font-size:11px;cursor:pointer}
.open-crop-btn:hover{background:#d2fbd5}.open-crop-btn[hidden]{display:none}
.has-photo .crop-preview{cursor:zoom-in}.crop-modal[hidden]{display:none!important}
.crop-modal-open{overflow:hidden}
.crop-modal{position:fixed;inset:0;background:#080d0dde;z-index:500;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(12px)}
.crop-dialog{width:min(1380px,98vw);height:min(900px,95dvh);min-height:400px;background:#172321;border:1px solid #546d60;border-radius:19px;box-shadow:0 25px 100px #020807d9;display:flex;flex-direction:column;overflow:hidden;color:#e6f1e8}
.crop-dialog-header{padding:19px 26px 17px;border-bottom:1px solid #344a3f;display:flex;justify-content:space-between;align-items:center;gap:20px;flex:none}
.crop-dialog-header h2{font-size:26px;margin:5px 0 3px}.crop-dialog-header p{font-size:12px;color:#b2c2ba;margin:2px 0 0}
.crop-close{width:37px;height:37px;flex:none;border:1px solid #456050;border-radius:9px;background:#263a31;color:#e1f0e6;cursor:pointer;font-size:16px}
.crop-dialog-content{display:grid;grid-template-columns:minmax(0,1fr) 307px;gap:0;min-height:0;flex:1}
.crop-stage{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0;background-color:#0b1010;background-image:linear-gradient(45deg,#141c1b 25%,transparent 25%,transparent 75%,#141c1b 75%,#141c1b),linear-gradient(45deg,#141c1b 25%,transparent 25%,transparent 75%,#141c1b 75%,#141c1b);background-position:0 0,11px 11px;background-size:22px 22px;user-select:none}
.crop-photo{position:relative;touch-action:none;flex:none;cursor:grab;box-shadow:0 15px 65px #0009;overflow:hidden;outline:none}
.crop-photo.moving{cursor:grabbing}.crop-photo:focus-visible{outline:2px solid #b9edbd;outline-offset:4px}
.crop-photo img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}
.crop-selection{position:absolute;box-shadow:0 0 0 3000px #030a09a9,inset 0 0 0 2px #fff;border:1px solid #0f1714;cursor:move;touch-action:none;pointer-events:auto}
.crop-third-v,.crop-third-h{position:absolute;pointer-events:none;background:#ffffff77}
.crop-third-v{top:0;bottom:0;width:1px}.crop-third-v.one{left:33.333%}.crop-third-v.two{left:66.666%}
.crop-third-h{left:0;right:0;height:1px}.crop-third-h.one{top:33.333%}.crop-third-h.two{top:66.666%}
.crop-handle{width:11px;height:11px;border-radius:2px;background:#b9ffcb;border:2px solid #fff;position:absolute;box-shadow:0 1px 5px #0a100ea6;pointer-events:auto;cursor:nwse-resize}
.crop-handle.tl{top:-6px;left:-6px}.crop-handle.tr{top:-6px;right:-6px}.crop-handle.bl{bottom:-6px;left:-6px}.crop-handle.br{bottom:-6px;right:-6px}
.crop-instructions{position:absolute;bottom:13px;left:15px;right:15px;text-align:center;color:#d5e5dc;font-size:12px;text-shadow:0 2px 8px #000;pointer-events:none}
.crop-controls{border-left:1px solid #344a3f;padding:21px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:13px}
.crop-side-kicker{font-size:10px;font-weight:800;letter-spacing:.14em;color:#b9edc3}
.crop-result-frame{max-width:230px;width:100%;aspect-ratio:1;margin:0 auto;background:#25392f;box-shadow:0 6px 23px #080f0d;overflow:hidden;border-radius:8px;border:5px solid #dbe2d9}
.crop-result-frame canvas{display:block;width:100%;height:100%;object-fit:cover}
.crop-preview-caption{font-size:11px;color:#b0c1b7;line-height:1.5;margin:0;text-align:center}
.crop-zoom-group{margin-top:7px}.crop-control-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700}
.crop-control-heading output{color:#b5efc1;font-variant-numeric:tabular-nums}.crop-zoom-line{display:flex;align-items:center;gap:10px;margin-top:10px}
.crop-zoom-line input{flex:1;min-width:0;accent-color:#b8edba;cursor:pointer}.crop-zoom-line button{height:30px;width:30px;background:#2f4b3b;border:1px solid #527a5d;color:white;border-radius:7px;font-size:18px;cursor:pointer}
.crop-adjust-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:6px}.crop-adjust-row button,.crop-reset{cursor:pointer;background:#2a3e34;border:1px solid #53715e;color:#d7efdf;border-radius:7px;font-size:11px;padding:11px 5px}
.crop-adjust-row button:hover,.crop-reset:hover,.crop-close:hover{background:#3b5c46}.crop-reset{margin-top:0;min-height:38px}
.crop-modal-actions{display:flex;gap:9px;margin-top:auto;padding-top:12px;border-top:1px solid #355044}
.crop-modal-actions button{flex:1;cursor:pointer;font-size:12px;font-weight:700;border:1px solid #4d6856;color:#e2f3e7;border-radius:8px;background:#2d4036;padding:13px 9px}
.crop-modal-actions .crop-apply{flex:1.65;color:#142b1d;background:#b7edbe;border:0}.crop-modal-actions .crop-apply:hover{background:#d5ffdc}
@media(max-width:920px){.crop-dialog-content{grid-template-columns:minmax(0,1fr) 240px}.crop-controls{padding:13px;gap:8px}.crop-result-frame{max-width:165px}.crop-dialog-header{padding:11px 15px}.crop-dialog-header h2{font-size:21px}.crop-dialog{height:min(800px,96dvh)}}
@media(max-width:620px){.crop-modal{padding:0}.crop-dialog{width:100%;height:100dvh;border-radius:0;border:0}.crop-dialog-content{display:flex;flex-direction:column}.crop-dialog-header h2{font-size:18px}.crop-dialog-header p{font-size:11px}.crop-stage{flex:1;min-height:210px}.crop-controls{border-left:0;border-top:1px solid #344a3f;max-height:38dvh;display:grid;grid-template-columns:1fr 1fr;gap:7px 12px}.crop-side-kicker,.crop-preview-caption{display:none}.crop-result-frame{grid-row:1/4;max-width:126px}.crop-zoom-group{align-self:end}.crop-adjust-row{grid-column:2;grid-template-columns:repeat(3,1fr)}.crop-adjust-row button{font-size:10px;padding:8px 3px}.crop-reset{grid-column:1}.crop-modal-actions{grid-column:1/-1;padding-top:6px}.crop-instructions{font-size:10px;bottom:5px}.crop-dialog-header{padding:9px 13px}}

.crop-handle.tr,.crop-handle.bl{cursor:nesw-resize}
