:root{font-family:system-ui,-apple-system,"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;color:#1d303c;background:#f2f3f1;font-size:16px;line-height:1.4;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-width:280px}body{overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.38}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible,.stage:focus-visible{outline:3px solid #e36e56;outline-offset:2px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.app{height:100vh;height:100dvh;min-height:510px;display:grid;grid-template-rows:62px 49px minmax(0,1fr) 218px;background:#f2f3f1;overflow:hidden}.app.is-editing{grid-template-rows:62px 49px minmax(0,1fr) 203px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px 7px 18px;background:#f9f9f7;border-bottom:1px solid #dfe3e3}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{position:relative;display:block;width:30px;height:30px;flex:none}.brand-mark span{position:absolute;width:22px;height:22px;border:2px solid #d86e55;border-radius:6px;transform:rotate(-12deg);top:1px;left:1px}.brand-mark span+span{border-color:#243e50;transform:rotate(12deg);top:6px;left:7px}.brand h1{margin:0;font-size:16px;font-weight:760;letter-spacing:.01em;white-space:nowrap}.brand p{margin:1px 0 0;color:#71808a;font-size:11px;line-height:1.2}.top-save{flex:none;border:0;background:#213c4d;color:white;border-radius:14px;padding:0 15px;height:42px;font-size:14px;font-weight:730;box-shadow:0 4px 12px #1b40512a}.top-save span{margin-left:3px;font-size:18px;font-weight:400}
.historybar{display:flex;align-items:center;gap:7px;padding:5px 14px;background:#f9f9f7;border-bottom:1px solid #e4e7e7}.history-button,.reset-button{border:0;background:transparent;color:#334753;min-height:38px;border-radius:11px;font-size:13px;font-weight:650;padding:0 8px}.history-button span{font-size:20px;vertical-align:-2px}.history-button:not(:disabled):active,.reset-button:active,.quiet-button:active{background:#e8eeef}.history-spacer{flex:1}.reset-button{color:#71808a}
.canvas-area{display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;padding:9px 12px;background:radial-gradient(circle at center,#f9f9f7 0,#eeefec 78%)}.canvas-shell{flex:none;max-width:100%}.stage{position:relative;width:100%;aspect-ratio:1/1;background:white;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 12px 35px #30445220,0 0 0 1px #d9dddf;border-radius:3px}.canvas-caption{display:flex;justify-content:space-between;color:#88949b;font-size:12px;padding-top:8px;line-height:16px}
.empty-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;color:#9aa7ac;gap:6px;text-align:center;padding:20px}.empty-glyph{display:grid;place-items:center;width:70px;height:70px;border:2px dashed #cbd6d9;border-radius:22px;margin-bottom:7px;color:#c1ced0;font-size:38px;font-weight:250;transform:rotate(-8deg)}.empty-hint strong{font-size:15px;font-weight:670}.empty-hint small{font-size:12px}
.design-object{position:absolute;left:0;top:0;transform-origin:center center;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.design-object:active{cursor:grabbing}.design-object img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;-webkit-user-drag:none}.design-object.text-object{display:flex;align-items:center;justify-content:center;width:max-content;max-width:84%;white-space:pre-wrap;overflow-wrap:anywhere;text-align:center;font-weight:750;line-height:1.18;padding:0 3px}.design-object.is-selected::after{content:"";position:absolute;inset:-7px;border:2px solid #e06b52;border-radius:5px;pointer-events:none;box-shadow:0 0 0 1px white}.design-object.is-selected::before{content:"";position:absolute;right:-12px;bottom:-12px;width:12px;height:12px;border:2px solid white;background:#e06b52;border-radius:50%;z-index:1;pointer-events:none}
.bottom-dock{min-height:0;background:#fff;border-top:1px solid #e0e5e5;box-shadow:0 -4px 20px #263b4510;padding-bottom:env(safe-area-inset-bottom);overflow:hidden}.picker-panel,.edit-panel{height:100%;display:flex;flex-direction:column;min-height:0;padding:11px 14px 10px}.panel-heading,.edit-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.panel-heading h2{font-size:16px;margin:0;letter-spacing:.01em}.panel-actions{display:flex;gap:6px;align-items:center}.quiet-button{background:transparent;border:0;color:#627681;border-radius:9px;padding:0 7px;min-height:34px;font-size:13px;font-weight:660}.text-add-button{border:1px solid #becbd0;background:#f5f9f9;color:#284b59;border-radius:11px;min-height:36px;padding:0 13px;font-size:14px;font-weight:750}.text-add-button span{font-size:19px;vertical-align:-1px;font-weight:400}.search-wrap{padding:4px 0;flex:none}.search-wrap input{width:100%;height:34px;border:1px solid #bdcbd0;border-radius:9px;padding:0 10px;background:#f8faf9;font-size:14px}.category-list{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:9px 0 8px;flex:none}.category-list::-webkit-scrollbar,.asset-list::-webkit-scrollbar{display:none}.category-button{flex:none;border:1px solid transparent;border-radius:100px;background:#edf1f2;color:#62747e;padding:0 13px;min-height:33px;font-size:13px;font-weight:700}.category-button.active{background:#243f50;color:white}.asset-list{display:flex;align-items:flex-start;gap:9px;overflow:auto hidden;scrollbar-width:none;flex:1;min-height:0;padding:2px 1px 2px}.asset-tile{position:relative;display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:75px;height:88px;padding:4px 3px;background:#f6f7f5;border:1px solid #edf0ee;border-radius:13px;color:#334b58}.asset-tile:active{background:#e8eff1;transform:scale(.97)}.asset-tile img{display:block;width:53px;height:53px;object-fit:contain;pointer-events:none}.asset-tile span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650}.no-assets{align-self:center;color:#788791;font-size:14px}
.edit-heading strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-heading-actions{display:flex;flex:none;gap:3px}.adjustments{display:grid;gap:0;margin-top:5px;flex:none}.adjust-row{display:grid;grid-template-columns:50px minmax(0,1fr) 38px;align-items:center;gap:8px;min-height:32px;color:#48606e;font-size:12px;font-weight:700}.adjust-row output{text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:#6d7d87}.adjust-row input[type=range]{width:100%;height:28px;margin:0;accent-color:#df7357;touch-action:none}.edit-actions{display:flex;gap:6px;min-width:0;margin-top:5px;flex:none}.edit-actions button{flex:1;min-width:0;min-height:39px;border:1px solid #dce4e5;border-radius:10px;background:#f5f8f8;color:#334b58;padding:0 6px;font-size:12px;font-weight:750;white-space:nowrap}.edit-actions .danger-button{color:#b74237;background:#fff5f3;border-color:#f1d9d4}.edit-actions .add-more-button{flex:1.5;background:#e9f0f1;color:#234657;border-color:#d4e1e4}.gesture-hint{margin:5px 0 0;color:#85919a;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none;color:inherit}dialog::backdrop{background:#142d3bbc;backdrop-filter:blur(3px)}.sheet-dialog{width:min(100% - 24px,420px);border-radius:22px;box-shadow:0 20px 60px #172d3a55}.sheet-content,.result-content{background:white;padding:21px}.sheet-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sheet-top h2{margin:0;font-size:19px}.icon-close{display:grid;place-items:center;flex:none;border:0;border-radius:50%;background:#eef2f2;color:#526671;width:37px;height:37px;font-size:26px;line-height:1}.field-label{display:block;font-size:13px;font-weight:700;margin:19px 0 7px}.sheet-content textarea{display:block;width:100%;resize:vertical;border:1px solid #bccbd0;border-radius:12px;padding:11px 12px;min-height:76px;outline-color:#e36e56;font-size:18px}.color-field{padding:0;margin:17px 0 20px;border:0}.color-field legend{font-size:13px;font-weight:700;margin-bottom:9px}.color-choices{display:flex;gap:12px}.color-option{width:38px;height:38px;border-radius:50%;border:2px solid #d6dddd;background:var(--swatch);box-shadow:0 0 0 1px #ffffff inset}.color-option[aria-pressed=true]{outline:2px solid #1b3e51;outline-offset:3px}.primary-button{display:grid;place-items:center;width:100%;min-height:48px;border:0;border-radius:12px;background:#223f50;color:white;font-size:15px;font-weight:750;text-decoration:none}
.result-dialog{width:min(100% - 24px,460px);max-height:calc(100dvh - 28px);border-radius:20px;box-shadow:0 20px 60px #172d3a55;overflow:auto}.result-content{padding:19px 20px 22px}.eyebrow{font-size:12px;letter-spacing:.15em;color:#d36c52;font-weight:800;margin:0 0 3px}.result-preview{display:grid;place-items:center;background:#eef1f0;padding:13px;margin:18px 0 16px;border-radius:13px}.result-preview img{display:block;max-width:100%;max-height:min(43dvh,390px);box-shadow:0 5px 18px #1b303727}.save-hint{font-size:12px;line-height:1.5;text-align:center;color:#788791;margin:9px 0 0}.back-edit-button{display:block;margin:15px auto 0;background:transparent;border:0;color:#3a6070;font-weight:700;font-size:14px;min-height:38px;padding:0 16px}.ad-slot{margin-top:72px;min-height:120px;border-top:1px solid #e8ecec;text-align:center}.ad-slot p{color:#829096;font-size:12px;margin:10px 0}.ad-slot-content{max-width:100%;min-height:90px;overflow:hidden;display:grid;place-items:center}.toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%,12px);background:#243e4e;color:white;padding:10px 16px;border-radius:10px;font-size:13px;box-shadow:0 7px 20px #1d354540;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:20;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:850px){.app,.app.is-editing{grid-template-columns:minmax(0,1fr) 330px;grid-template-rows:62px 50px minmax(0,1fr)}.topbar,.historybar,.canvas-area{grid-column:1}.topbar{grid-row:1}.historybar{grid-row:2}.canvas-area{grid-row:3;padding:24px}.bottom-dock{grid-column:2;grid-row:1/4;border-top:0;border-left:1px solid #dbe2e3;box-shadow:-6px 0 20px #263b450c}.picker-panel,.edit-panel{padding:20px}.panel-heading{align-items:flex-start}.category-list{flex-wrap:wrap;overflow:visible;padding-top:20px}.asset-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;overflow:auto;gap:11px;padding-top:14px}.asset-tile{width:100%;height:110px}.asset-tile img{height:69px;width:69px}.asset-tile span{font-size:12px}.edit-panel .adjustments{margin-top:22px;gap:7px}.edit-panel .adjust-row{min-height:42px}.edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.edit-actions button{min-height:45px;font-size:13px}.edit-actions .add-more-button{grid-column:1/3}.gesture-hint{white-space:normal;margin-top:17px;line-height:1.5;font-size:12px}}
@media(max-width:370px){.topbar{padding:6px 11px}.brand h1{font-size:14px}.top-save{font-size:12px;padding:0 10px}.historybar{padding:4px 8px;gap:2px}.history-button,.reset-button{font-size:12px;padding:0 5px}.picker-panel,.edit-panel{padding-left:10px;padding-right:10px}.edit-actions{gap:3px}.edit-actions button{font-size:11px;padding:0 3px}}
@media(max-height:650px) and (max-width:849px){.app{grid-template-rows:53px 43px minmax(0,1fr) 185px}.app.is-editing{grid-template-rows:53px 43px minmax(0,1fr) 177px}.top-save{height:37px}.historybar{padding-top:1px;padding-bottom:1px}.picker-panel,.edit-panel{padding-top:5px;padding-bottom:4px}.category-list{padding-top:5px;padding-bottom:5px}.asset-tile{height:76px}.asset-tile img{width:45px;height:45px}.edit-actions button{min-height:34px}.gesture-hint{display:none}.adjust-row{min-height:30px}}
@media(max-height:530px){body{overflow:auto}.app{min-height:510px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
