:root{color-scheme:light;--ink:#554b45;--muted:#887a70;--line:#e6ded3;--paper:#fffefa;--accent:#97715e;--pink:#d7b7b0}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:linear-gradient(135deg,#f7f3e9 0%,#faf5ef 48%,#f7eded 100%);font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:15px;line-height:1.85}button,input,select{font:inherit}a{color:inherit;text-underline-offset:5px}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button:disabled,input:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a6b6ae;outline-offset:4px}[hidden]{display:none!important}.hero{text-align:center;padding:38px 20px 36px}.brand{font-family:Georgia,serif;font-size:19px;letter-spacing:.08em;text-decoration:none}.eyebrow{font-size:11px;letter-spacing:.19em;color:var(--muted);margin:0 0 13px}.hero .eyebrow{margin-top:27px;font-size:10px}.hero h1{font-size:clamp(28px,4vw,43px);font-weight:600;letter-spacing:.08em;line-height:1.5;margin:0;position:relative;display:inline-block}.hero h1 span{color:var(--accent)}.hero h1 i{font-style:normal;font-size:30px;color:var(--pink);position:absolute;right:-35px;top:-17px}.hero>p:not(.eyebrow){font-size:14px;margin:13px 0 20px}.hero-tags{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.hero-tags span{font-size:11px;border:1px solid var(--line);border-radius:30px;padding:3px 12px;background:#ffffff65}.mobile-break{display:none}main{max-width:1120px;margin:auto;padding:0 30px}.workspace{display:grid;grid-template-columns:minmax(0,390px) minmax(0,1fr);gap:38px;align-items:start}.settings{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.control-section{padding:25px 27px}.control-section+.control-section{border-top:1px dashed var(--line)}h2,h3{line-height:1.6}h2{font-size:18px;font-weight:600;margin:0 0 19px}.control-section h2{font-size:16px}.step{font-family:Georgia,serif;font-style:italic;color:var(--accent);font-size:19px;margin-right:13px}label{display:block;font-size:13px;margin:13px 0 0}select,input[type=text]{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;padding:9px 11px;font-size:16px;margin-top:5px}select{padding-right:24px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.upload{position:relative;display:flex;gap:10px;align-items:center;justify-content:center;border:1px dashed #baa596;background:#f8f3ec;border-radius:10px;min-height:64px;font-size:15px;cursor:pointer;overflow:hidden}.upload>span{font-size:22px}.upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.upload:focus-within{outline:3px solid #a6b6ae}.hint,.privacy{font-size:11px;color:var(--muted);line-height:1.7}.hint{overflow-wrap:anywhere;margin:8px 0}.privacy{margin:9px 0 16px}.sliders label{display:flex;justify-content:space-between;margin-top:9px;font-size:12px}.sliders label span,.sliders output{color:var(--muted);font-size:11px}input[type=range]{display:block;width:100%;height:28px;margin:0;accent-color:var(--accent)}.font-sample{font-size:18px;line-height:1.8;text-align:center;padding:14px 6px;background:#f8f5ee;border-radius:8px;margin:12px 0;color:var(--accent)}.preview-panel{position:sticky;top:24px;text-align:center;padding-top:8px;min-width:0}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.preview-heading h2{font-size:14px;margin:0}.preview-heading>span{font-size:10px;letter-spacing:.17em;color:var(--muted)}.photo-frame{position:relative;padding:13px;background:var(--paper);border:1px solid var(--line);box-shadow:0 5px 18px #6b55400b;transform:rotate(-.6deg)}canvas{display:block;width:100%;height:auto;aspect-ratio:1;background:#eee9e1}#empty-state{position:absolute;inset:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eee9e1;padding:15px}#empty-state strong{font-size:15px;font-weight:500}#empty-state p{font-size:12px;color:var(--muted)}.empty-icon{font-size:62px;color:#b5a497;line-height:1.5}.preview-note{font-family:"Klee One",serif;font-size:15px;color:var(--muted);margin:20px 0 8px}.status{font-size:12px;line-height:1.7;min-height:21px;margin:5px 0 13px;overflow-wrap:anywhere}.save-button{width:100%;border:0;border-radius:10px;padding:14px 20px;background:var(--accent);color:white;font-size:16px;letter-spacing:.06em}.save-button span{margin-left:18px}.save-button:hover:not(:disabled){background:#825e4c}.save-hint{font-size:11px;color:var(--muted);line-height:1.8;margin:10px 0}.reset-button{margin-top:21px;border:0;background:transparent;color:var(--muted);text-decoration:underline;text-underline-offset:4px;font-size:12px;padding:12px 20px}.information{max-width:820px;margin:72px auto 0;background:#fffefaab;border:1px solid var(--line);border-radius:18px;padding:10px 42px}.information>section{padding:34px 0}.information>section+section{border-top:1px dashed var(--line)}.information p{margin:12px 0}.information .eyebrow{margin:0 0 9px;font-size:12px}.information h2{font-size:20px;margin-bottom:18px}.recommend{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}.recommend li{font-size:14px;padding-left:22px;position:relative}.recommend li:before{content:'✓';color:#a0a893;position:absolute;left:0}.how-to{padding-left:24px}.how-to li{padding-left:8px;margin-top:17px}.how-to li::marker{color:var(--accent);font-family:Georgia,serif}.how-to h3{font-size:15px;margin:0}.how-to p{font-size:14px;margin:4px 0}details{border-bottom:1px solid var(--line);padding:3px 0}summary{padding:14px 3px;font-size:14px}details p{font-size:14px;padding:0 8px 12px}.tool-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tool-links a{display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:17px;text-decoration:none;background:#fffefa}.tool-links strong{font-size:14px;font-weight:500}.tool-links span{font-size:11px;color:var(--muted);margin-top:5px}.tool-links a:hover{background:#f6f0e8}.all-tools{display:block;text-align:center;font-size:13px;padding:20px 8px 0}footer{text-align:center;padding:40px 16px 32px;color:var(--muted);font-size:12px}footer p{margin:0}footer a{display:inline-block;padding:13px 5px}footer small{display:block;margin-top:15px;font-size:11px}@media(max-width:760px){.hero{padding:27px 20px 29px}.hero h1{font-size:30px;letter-spacing:.02em}.hero h1 i{font-size:22px;right:-20px;top:-16px}.hero-tags{gap:6px}.hero-tags span{padding:3px 9px;font-size:10px}.mobile-break{display:block}main{padding:0 18px}.workspace{grid-template-columns:minmax(0,1fr);gap:30px}.control-section{padding:22px}.preview-panel{position:static;padding:0 3px}.photo-frame{transform:none;padding:10px}#empty-state{inset:10px}.information{margin-top:45px;padding:0 23px}.information>section{padding:27px 0}.information h2{font-size:18px}.recommend,.tool-links{grid-template-columns:1fr}.information p{font-size:14px}.hero .eyebrow{font-size:9px;letter-spacing:.12em}.preview-heading h2{font-size:14px}}
.hero h1{display:block;width:fit-content;margin:27px auto 0}.hero>p.english-title{font-size:12px;font-weight:400;letter-spacing:.08em;color:var(--muted);margin:4px 0 16px}.sample-picker>p{font-size:13px;margin:0 0 9px}.sample-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:280px}.sample-button{min-width:0;padding:0;border:0;background:transparent;color:var(--ink);font-size:11px;line-height:1.6;text-align:center}.sample-thumb{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;width:100%;border:2px solid var(--line);border-radius:8px;overflow:hidden;background:#f3eee6;margin-bottom:5px;color:var(--muted);font-size:10px}.sample-thumb img{display:block;width:100%;height:100%;object-fit:cover}.sample-button[aria-pressed=true] .sample-thumb{border-color:var(--accent);box-shadow:0 0 0 2px #97715e35}.sample-button[aria-pressed=true] .sample-thumb:after{content:"✓";position:absolute;right:3px;bottom:3px;width:18px;height:18px;line-height:18px;border-radius:50%;color:white;background:var(--accent);font-size:12px}.sample-button:disabled{opacity:.65}.sample-picker{margin-bottom:18px}
/* One canvas: preview first in DOM, settings second, save actions last. */
.workspace{grid-template-areas:"settings preview" "settings actions";grid-template-rows:auto 1fr;column-gap:38px;row-gap:0}.settings{grid-area:settings}.preview-panel{grid-area:preview;position:static}.save-panel{grid-area:actions;text-align:center;min-width:0}
@media(max-width:760px){html{scroll-padding-top:300px}.workspace{display:flex;flex-direction:column;gap:22px;align-items:stretch}.preview-panel{position:sticky;top:max(6px,env(safe-area-inset-top));z-index:10;align-self:stretch;padding:5px 0 9px;background:rgba(249,244,237,.98);border-radius:12px;border-bottom:1px solid var(--line)}.preview-heading{justify-content:center;margin:0 0 5px;line-height:1.4}.preview-heading h2{display:none}.preview-heading>span{font-size:10px}.preview-panel .photo-frame{width:252px;margin:0 auto}.preview-note{display:none}.settings,.save-panel{width:100%}.save-panel{position:static}.settings input,.settings select,.settings button,.save-panel button,.save-panel a{scroll-margin-top:300px;scroll-margin-bottom:24px}.preview-panel #empty-state strong{font-size:12px}.preview-panel #empty-state p{font-size:10px}.preview-panel .empty-icon{font-size:36px}}
@media(max-width:340px){.preview-panel .photo-frame{width:232px}html{scroll-padding-top:280px}.settings input,.settings select,.settings button,.save-panel button{scroll-margin-top:280px}}
/* The preview occupies its own row on every screen; mobile sticky rules above stay active. */
.workspace{display:flex;flex-direction:column;align-items:stretch;gap:24px;max-width:620px;margin:0 auto}.preview-heading{justify-content:center}.preview-heading h2{display:none}
@media(min-width:761px){.preview-panel .photo-frame{width:468px;max-width:100%;margin:0 auto;transform:none}.preview-panel{padding-top:0}.settings,.save-panel{width:100%}}
.desktop-mini{display:none}
@media(min-width:1100px){.desktop-mini{display:block;position:fixed;right:16px;top:24px;width:180px;padding:10px;background:var(--paper);border:1px solid var(--line);border-radius:10px;text-align:center;z-index:9;pointer-events:none}.desktop-mini>span{display:block;font-size:10px;letter-spacing:.17em;color:var(--muted);margin-bottom:7px}.desktop-mini img{display:block;width:158px;height:158px;object-fit:contain}}
.hero h1 i{color:#d7b7b0;font-family:serif;font-weight:400;font-size:24px}
@media(max-width:760px){.hero h1 i{font-size:18px}}
