*{box-sizing:border-box}body{margin:0;background:#f5f4ee;color:#253b46;font:14px "Aptos","Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{border:0;cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit;text-decoration:none}button,input,select,a,[tabindex]{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #7d9eb5;outline-offset:4px}[hidden]{display:none!important}header{height:90px;border-bottom:1px solid #d8dedb;display:flex;align-items:center;gap:28px;padding:0 56px;max-width:1450px;margin:auto}.back{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600}.brand{font:italic 36px Georgia,serif;letter-spacing:-6px;margin-right:7px}.brand span{color:#7f9cad}.slash{font-weight:300;font-size:23px;color:#aab7b9;margin-left:18px}.logo{display:flex;align-items:center;gap:7px;font-size:14px;letter-spacing:2.3px;font-weight:700}.logo span{font-weight:400}.logo i,.local i{width:6px;height:6px;background:#7f9cad;border-radius:50%;margin-left:5px}.local{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:8px;letter-spacing:1.3px;color:#93a2a5}.local i{width:5px;height:5px;background:#8ca499}main{max-width:1450px;padding:0 56px;margin:auto}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;padding:46px 0 36px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:700}.intro .eyebrow{margin:0}.intro h1{font-size:64px;letter-spacing:-2.5px;font-weight:500;margin:19px 0 0;line-height:1.05}.intro h1 span{color:#8da0a7}.intro>p{font-size:13px;line-height:1.8;color:#879a9e;margin:0 20px 3px 0}.atelier{display:grid;grid-template-columns:minmax(0,1fr) 310px;border:1px solid #d9dfda;background:#fbfaf5}.work{padding:26px 29px;min-width:0}.work-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.work-top .eyebrow{font-size:8px;color:#8da0a4}.work-top h2{font-size:13px;font-weight:500;margin:8px 0 0;max-width:40vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button{display:flex;align-items:center;justify-content:center;padding:13px 17px;background:#e8ece8;font-size:11px;gap:9px;font-weight:600;transition:background .2s}.button:hover{background:#dce4df}.button.small{font-size:10px;white-space:nowrap;padding:11px 13px}.button.primary{background:#7897ab;color:#fff;justify-content:space-between;width:100%;padding:16px 18px}.button.primary:hover{background:#64869d}.button.primary>span:last-child{font-size:19px;line-height:13px}.button.secondary{border:1px solid #cbd7db;background:transparent;justify-content:space-between;width:100%;padding:13px 16px;margin-top:10px;font-size:10px}.button.secondary:hover{background:#e1e9e7}.stage{height:455px;display:flex;align-items:center;justify-content:center;background:#e9eeea;position:relative;overflow:hidden;border:1px solid #e0e7e0}.empty{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;background:radial-gradient(ellipse at 50% 25%,#e2e9e4,transparent 75%)}.empty:hover{background:#e3ebe6}.portrait-art{width:130px;height:170px;background:#d0dce0;position:relative;overflow:hidden;margin:0 0 26px;border:7px solid #fffef8;box-shadow:0 8px 24px #354d4d14;transform:rotate(-4deg)}.art-head{position:absolute;width:49px;height:65px;background:#99adb8;border-radius:45% 45% 42% 42%;left:34px;top:25px}.art-body{position:absolute;width:120px;height:95px;background:#7d97a5;border-radius:50% 50% 0 0;left:-2px;top:103px}.guide-line{position:absolute;border-top:1px dashed #fafcf3;width:100%;top:57px}.guide-mark{position:absolute;width:76px;left:20px;border-top:1px solid #f1f4e8}.mark-a{top:17px}.mark-b{top:99px}.empty h3{font-size:22px;letter-spacing:-.6px;font-weight:500;margin:5px 0 12px}.empty p{font-size:11px;color:#8fa1a2;margin:0 0 22px}.empty p u{color:#647f8e;text-underline-offset:3px}.empty>span{font-size:8px;letter-spacing:1px;color:#9daeb0}#canvasWrap{height:100%;width:100%;display:flex;align-items:center;justify-content:center;position:relative}#portrait{max-height:calc(100% - 34px);max-width:calc(100% - 34px);object-fit:contain;box-shadow:0 7px 22px #243b421f;cursor:grab;touch-action:none;display:block}#portrait:active{cursor:grabbing}#guides{position:absolute;pointer-events:none}.processing{position:absolute;inset:0;background:#e9eeeadb;backdrop-filter:blur(4px);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:3}.processing>span{font-size:42px;color:#7897ab;animation:spin 2s linear infinite}.processing p{font-size:12px;color:#6e8994}@keyframes spin{to{transform:rotate(360deg)}}.stage-tools{display:flex;align-items:center;gap:15px;padding:14px 0;font-size:9px;color:#99a9aa;flex-wrap:wrap}.stage-tools label{display:flex;align-items:center;gap:6px;font-size:9px;color:#83989e;cursor:pointer}.stage-tools input{accent-color:#7f9dab;width:11px;height:11px;margin:0}.stage-tools>span{margin-left:auto;font-size:8px}.text-button{background:none;padding:3px 0;font-size:10px;line-height:1.6;color:#839ba5}.text-button:hover{color:#4a738c}.stage-tools .text-button{font-size:8px}.position-controls{display:flex;align-items:center;gap:22px;background:#f0f2ea;padding:17px 18px;margin:6px 0 19px}.position-controls>label{flex:1;min-width:0;font-size:9px;color:#8d9e9e}.position-controls output,.field-label output{float:right;font-size:9px;color:#6c8994}.position-controls .text-button{font-size:9px;white-space:nowrap}.square-button{background:#e1e8e2;font-size:24px;color:#829eab;width:35px;height:35px}.guide-copy{display:flex;gap:13px;font-size:10px;line-height:1.8;color:#92a2a2}.guide-copy>span{font-size:25px;color:#b1c0bf;line-height:1.4}.guide-copy p{margin:0;max-width:540px}.status{font-size:11px;color:#81633f;background:#f0e9db;padding:12px 15px;margin:18px 0;line-height:1.7}.checklist{border-top:1px solid #e0e6df;margin-top:25px;padding-top:22px;display:grid;grid-template-columns:130px 1fr;gap:20px}.checklist .eyebrow{font-size:8px;color:#91a2a2;margin-top:4px}.checklist p{font-size:9px;color:#91a2a2;line-height:1.8;margin:0 0 4px}aside{border-left:1px solid #d9dfda;background:#edf1ee;padding:27px 27px}.aside-top{display:flex;align-items:center;justify-content:space-between;color:#95a7aa}.aside-top .eyebrow{font-size:8px;letter-spacing:1.4px}.aside-top>span:last-child{font-size:23px;line-height:1}aside>h2{font-size:25px;letter-spacing:-.6px;font-weight:500;margin:14px 0 27px}fieldset{border:0;padding:0;margin:0 0 25px;min-width:0}legend{display:flex;gap:10px;font-size:10px;color:#9daeb0;width:100%;padding:0;margin-bottom:12px}legend>span{font-size:11px;font-weight:600;color:#66828c}select,input[type=number]{width:100%;padding:11px 27px 11px 11px;background:#f7f9f4;border:1px solid #cfdbd9;color:#708b95;font-size:10px;min-height:37px}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='m3 4 3 3 3-3' fill='none' stroke='%23778d94'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.profile-stats{display:flex;justify-content:space-between;font-size:8px;color:#94a6a8;margin-top:10px}.caution{font-size:9px;line-height:1.7;color:#8c8f7d;margin:14px 0 7px}.source{font-size:9px;color:#6b8b9b;text-decoration:underline;text-underline-offset:3px}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:#dfe7e3;padding:4px}.mode-tabs button{font-size:10px;background:none;padding:10px 4px;color:#9aacae}.mode-tabs button.active{background:#fbfcf7;color:#668491;box-shadow:0 1px 4px #345d5c0a}.hint{font-size:9px;line-height:1.7;color:#9aacae;margin:10px 0 0}.field-label{font-size:9px;color:#8b9fa5;display:block;margin:18px 0 9px}.background-row{display:flex;align-items:center;gap:9px}.swatch{height:24px;width:24px;background:var(--color);border:2px solid #d6e0dc;border-radius:50%;padding:0}.swatch.active{outline:1px solid #7694a4;outline-offset:3px}input[type=color]{width:25px;height:25px;padding:2px;background:transparent;border:1px solid #ccd9d5;margin-left:auto;cursor:pointer}.model-button{background:#dce7e5;color:#6c8b94;width:100%;font-size:9px;justify-content:space-between;padding:12px 10px;margin-top:17px}.creative-caution{font-size:8px;line-height:1.8;color:#a18c71;background:#f2ece0;padding:10px 11px;margin-top:16px}input[type=range]{appearance:none;width:100%;height:3px;background:#cedbd8;border-radius:3px;display:block;margin:11px 0 0;accent-color:#7899a9;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:#7d9ca9;border:2px solid #f4f7ef;box-shadow:0 0 0 1px #7d9ca9}input[type=range]::-moz-range-thumb{width:8px;height:8px;border:2px solid #f4f7ef;background:#7d9ca9;border-radius:50%}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.two-fields label{font-size:8px;color:#90a4a8}.two-fields input{margin-top:5px;padding-right:8px}.centered{text-align:center;font-size:8px}.save-settings{display:block;margin:18px auto 0;font-size:8px}.privacy-note{font-size:8px;line-height:1.7;color:#a2b1af;text-align:center;margin:9px 0 0}.fineprint{display:grid;grid-template-columns:150px 1fr 1fr;gap:28px;padding:29px 0;border-bottom:1px solid #dce3dc;align-items:start}.fineprint .eyebrow{font-size:8px;color:#99abaa;line-height:1.8}.fineprint p{font-size:9px;color:#9aadaa;line-height:1.8;margin:0}.fineprint a{text-decoration:underline;text-underline-offset:3px}footer{display:flex;align-items:center;gap:21px;padding:25px 0 32px;font-size:8px;color:#9aadaa}footer strong{font-size:9px;letter-spacing:1.5px;color:#809b9f}footer a{margin-left:auto;color:#86a0a7}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,15px);padding:14px 22px;background:#2c4954;color:#f3f6f0;font-size:12px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:20;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1050px){header{padding:0 30px;height:78px}main{padding:0 30px}.atelier{grid-template-columns:minmax(0,1fr) 285px}.work{padding:24px 22px}aside{padding:25px 23px}.intro h1{font-size:53px}.stage{height:420px}.position-controls{gap:14px;padding:16px 13px}.position-controls .text-button{font-size:8px}.empty h3{font-size:19px}.checklist{grid-template-columns:1fr;gap:10px}.fineprint{grid-template-columns:120px 1fr 1fr;gap:22px}.stage-tools{gap:12px}.stage-tools>span{width:100%;text-align:right;margin-top:-5px}.work-top h2{max-width:30vw}}
@media(max-width:760px){header{height:72px;padding:0 22px;gap:18px}.back{font-size:0;gap:4px}.brand{font-size:35px}.slash{font-size:21px;margin-left:8px}.logo{font-size:12px}.local{font-size:7px;letter-spacing:.8px}main{padding:0 20px}.intro{padding:35px 0 28px;gap:20px}.intro h1{font-size:45px;letter-spacing:-1.8px}.intro .eyebrow{font-size:8px;letter-spacing:1.4px}.intro>p{font-size:10px;line-height:1.8;margin:0}.atelier{grid-template-columns:1fr}.work{padding:24px}.work-top h2{max-width:50vw}.stage{height:430px}.stage-tools>span{width:auto;margin:0 0 0 auto}.position-controls{gap:20px;padding:17px}.empty h3{font-size:22px}.checklist{grid-template-columns:130px 1fr;gap:20px}aside{border-left:0;border-top:1px solid #d9dfda;padding:26px;display:grid;grid-template-columns:1fr 1fr;gap:0 27px}.aside-top,aside>h2{grid-column:1/-1}aside>h2{margin-bottom:28px}aside>fieldset:nth-of-type(2){grid-column:2;grid-row:3/7}#exportPhoto,#exportSheet,#sheetInfo,#saveSettings,.privacy-note{grid-column:1/-1}.fineprint{grid-template-columns:1fr 1fr;gap:15px 25px}.fineprint>.eyebrow{grid-column:1/-1}.fineprint p{font-size:8px}footer{font-size:8px}.stage-tools{font-size:8px}.stage-tools .text-button{font-size:8px}.stage-tools label{font-size:8px}}
@media(max-width:450px){header{padding:0 18px}.local{font-size:0}.local i{width:6px;height:6px}.intro{align-items:flex-start}.intro h1{font-size:42px}.intro h1 span{display:block}.intro>p{font-size:9px;max-width:120px;margin-top:35px}.intro .eyebrow{font-size:7px;letter-spacing:1.3px}.work{padding:20px 15px}.work-top h2{font-size:11px;max-width:46vw}.button.small{font-size:9px;padding:10px}.stage{height:365px}.empty h3{font-size:18px}.empty p{font-size:10px}.portrait-art{transform:scale(.9) rotate(-4deg);margin-bottom:15px}.position-controls{gap:14px;flex-wrap:wrap;padding:15px}.position-controls>label{flex-basis:38%}.position-controls>.square-button{width:29px;height:29px;font-size:22px}.position-controls>.text-button{margin-left:auto}.stage-tools{gap:12px}.stage-tools>span{width:100%;text-align:right;margin-top:-5px}.checklist{grid-template-columns:1fr;gap:9px}.checklist p{font-size:8px}.guide-copy{font-size:9px}aside{padding:24px 20px;gap:0 19px}aside>h2{font-size:24px}legend{font-size:9px;gap:7px}legend>span{font-size:10px}.hint,.caution,.source{font-size:8px}select{font-size:9px;padding-left:8px}.profile-stats{font-size:7px;gap:6px;flex-direction:column}.mode-tabs button{font-size:9px;padding:9px 2px}.creative-caution{font-size:7px;padding:9px}.model-button{font-size:8px;padding:11px 8px}.background-row{gap:8px}.swatch{width:21px;height:21px}.field-label{font-size:8px}.fineprint{gap:15px 18px}footer{gap:12px}footer>span{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(max-width:600px){aside{display:block;padding:26px 22px}aside>fieldset:nth-of-type(2){grid-column:auto;grid-row:auto}aside fieldset{margin:0 0 28px}aside .hint,aside .caution,aside .source,.creative-caution,.privacy-note{font-size:12px;line-height:1.65}aside select,aside input[type=number]{font-size:16px;min-height:44px}aside legend,aside legend>span{font-size:12px}.mode-tabs button{font-size:12px;min-height:42px}.field-label,.profile-stats{font-size:11px}.model-button{font-size:12px;min-height:44px}.button.primary,.button.secondary{font-size:12px;min-height:44px}.fineprint{grid-template-columns:1fr}.fineprint p{font-size:11px}.checklist p{font-size:10px}.stage-tools,.stage-tools label,.stage-tools .text-button{font-size:10px}}
