:root{--ink:#313131;--muted:#808080;--green:#525252;--line:#e3e3e3;--paper:#f8f8f8;--accent:#eaeaea}*{box-sizing:border-box}body{margin:0;background:var(--paper);font:16px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}button,input,textarea{font:inherit}button{cursor:pointer}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #909090;outline-offset:4px}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}header{height:90px;margin:0 5%;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:26px}.brand{display:flex;gap:12px;color:var(--ink);align-items:center;text-decoration:none;font-size:20px;font-weight:750}.brand-mark{display:grid;place-items:center;width:41px;height:41px;border-radius:12px;background:var(--green);color:#f7f7f7;font:italic 32px Georgia,serif}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:500;margin-top:5px}.header-note{font-size:14px;color:var(--muted);margin-left:auto}.quiet{background:transparent;border:0;color:var(--muted);padding:7px;font-size:13px}header .quiet{border-left:1px solid var(--line);padding-left:25px}main{display:grid;grid-template-columns:minmax(400px,1.18fr) minmax(360px,.85fr);gap:65px;max-width:1300px;margin:auto;padding:38px 50px 45px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--green)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}h1{font-size:27px;font-weight:600;letter-spacing:-1px;margin:10px 0 0}.aspect-badge{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:6px 9px;border-radius:5px}.preview-stage{background:#ebebeb;background-image:radial-gradient(#d2d2d2 1px,transparent 1px);background-size:17px 17px;border-radius:18px;padding:25px 20px 17px;border:1px solid #e4e4e4;display:flex;flex-direction:column;align-items:center}.canvas-shell{width:min(100%,304px);aspect-ratio:9/16;border-radius:17px;overflow:hidden;box-shadow:0 15px 40px #2b2b2b28,0 0 0 5px #ffffff88;position:relative;background:#c0c0c0}#preview{width:100%;height:100%;display:block;cursor:grab;touch-action:none}#preview:active{cursor:grabbing}.loading{position:absolute;inset:0;display:grid;place-items:center;background:#eaeaea;color:var(--green);font-size:14px}.intro{position:absolute;inset:0;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;background:#343434cf;color:white;pointer-events:none;animation:welcome 2.2s forwards}.intro span{font-size:26px;letter-spacing:-1px}.intro small{font-size:12px;letter-spacing:2px}@keyframes welcome{0%,35%{opacity:1}100%{opacity:0;visibility:hidden}}.preview-caption{display:flex;gap:12px;align-items:center;margin-top:18px;font-size:12px;color:#707070}.preview-caption>span:first-child{font-weight:650;color:var(--green)}#play{border:0;background:#ffffff88;border-radius:50%;width:26px;height:26px;color:var(--green)}.preview-bottom{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:11px;color:var(--muted)}#renderState{color:var(--green)}.save-panel{margin-top:22px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#ffffff;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.save-panel strong{font-size:14px;font-weight:600}.save-panel p{font-size:11px;color:var(--muted);margin:6px 0 0}.save-buttons{display:flex;gap:7px}.primary,.secondary{font-size:12px;font-weight:550;padding:12px 14px;border-radius:7px;border:1px solid var(--green)}.primary{background:var(--green);color:white}.secondary{background:white;color:var(--green)}.save-panel .video-note{width:100%;font-size:11px;border-top:1px solid var(--line);padding-top:12px;margin:0;line-height:1.6}aside{padding-top:0}.editor-heading h2{font-size:25px;letter-spacing:-1px;font-weight:650;margin:10px 0 8px}.editor-heading p{font-size:14px;color:var(--muted);margin:0}.main-tabs{display:flex;border-bottom:1px solid var(--line);margin:25px 0 0;gap:20px}.main-tabs button{border:0;background:none;padding:13px 2px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent}.main-tabs button[aria-selected=true]{color:var(--green);border-color:var(--green);font-weight:650}.character-summary{display:flex;gap:21px;align-items:center;background:#f0f0f0;border:1px solid #e4e4e4;padding:12px 18px;margin:22px 0;border-radius:12px}.avatar-box{width:110px;height:110px;border-radius:9px;background:#f9f9f9;display:grid;place-items:center}#avatarPreview{width:110px;height:110px;image-rendering:pixelated}.character-summary strong{font-size:14px;font-weight:600}.character-summary p{font-size:12px;color:var(--muted);line-height:1.7;margin:7px 0}.character-summary .quiet{padding:0;color:var(--green);font-size:12px}.categories{display:flex;gap:6px;flex-wrap:wrap}.categories button{border:1px solid var(--line);padding:8px 12px;border-radius:25px;background:#ffffff;color:#7e7e7e;font-size:13px}.categories button[aria-selected=true]{background:var(--green);border-color:var(--green);color:#ffffff}.category-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 12px}.category-heading strong{font-size:14px;font-weight:550}.category-heading span{font-size:12px;color:var(--muted)}.items-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.item{border:1px solid var(--line);background:#ffffff;min-height:98px;border-radius:9px;padding:9px 4px 7px;color:var(--ink);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:5px}.item img{width:55px;height:62px;object-fit:contain;image-rendering:pixelated}.item span{font-size:11px;line-height:1.35;word-break:keep-all}.item.selected{background:#f1f1f1;border:2px solid #7b7b7b;padding:8px 3px 6px}.item.selected:after{content:'✓';position:absolute;right:4px;top:2px;font-size:11px;color:var(--green)}.item .none-item{display:grid;place-items:center;height:62px;font-size:26px;color:#adadad}.subtle{font-size:12px;color:var(--muted);line-height:1.7}.control-divider{height:1px;background:var(--line);margin:23px 0 18px}.field-row{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin:20px 0 10px}.field-row output,.field-row>span{font-size:12px;color:var(--muted)}input[type=range]{display:block;width:100%;accent-color:var(--green);cursor:pointer;height:5px;margin:12px 0 18px}input[type=text],textarea{width:100%;border:1px solid #dbdbdb;border-radius:8px;padding:12px 13px;background:#ffffff;color:var(--ink);font-size:15px}textarea{line-height:1.8;resize:vertical;min-height:110px}.upload-row{display:flex;align-items:center;margin-top:23px}.upload-button{font-size:13px;color:var(--green);cursor:pointer;border-bottom:1px solid #b7b7b7;padding-bottom:4px}.upload-button:focus-within{outline:3px solid #909090}.upload-button input{position:absolute;width:1px;height:1px;opacity:0}.panel-title{margin:25px 0 20px}.panel-title h3{font-size:18px;font-weight:600;letter-spacing:-.5px;margin:0}.panel-title p{font-size:13px;color:var(--muted);margin:8px 0}.maps-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.map-card{padding:0;text-align:left;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#ffffff;position:relative;color:var(--ink)}.map-card img{width:100%;height:100px;display:block;object-fit:cover;object-position:center 70%;image-rendering:pixelated}.map-card>span{display:block;padding:10px 11px;font-size:14px}.map-card small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.map-card.selected{outline:2px solid #7b7b7b;outline-offset:1px}.map-card.selected:after{content:'✓';position:absolute;right:8px;top:8px;border-radius:50%;background:var(--green);color:white;width:22px;height:22px;text-align:center;font-size:13px;padding-top:2px}.map-note{background:#f0f0f0;border-radius:10px;padding:17px;margin-top:20px}.map-note strong{font-size:14px}.map-note p{font-size:13px;line-height:1.8;color:#777777;margin:6px 0 0}.suggestions{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 24px}.suggestions button{background:#f0f0f0;border:1px solid #e2e2e2;color:#727272;padding:8px 9px;font-size:12px;border-radius:6px}.motion-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:23px;margin-top:25px}.motion-row strong{font-size:14px;font-weight:500}.motion-row p{font-size:12px;color:var(--muted);margin:7px 0}.switch input{position:absolute;opacity:0}.switch span{display:block;width:40px;height:23px;border-radius:30px;background:#bebebe;position:relative;cursor:pointer}.switch span:after{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;background:white;border-radius:50%;transition:transform .2s}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{transform:translateX(17px)}.switch input:focus-visible+span{outline:3px solid #909090}.editor-footer{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);margin-top:28px;padding-top:17px;font-size:12px;color:#8e8e8e}.tiny-square{height:7px;width:7px;border:1px solid #a0a0a0}footer{margin:0 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding:23px 0;font-size:11px;color:var(--muted)}footer a{color:inherit}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#373737;color:#ffffff;padding:15px 22px;border-radius:10px;font-size:14px;max-width:90vw;box-shadow:0 8px 30px #00000022;transition:.2s;z-index:20}#toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:1400px){.canvas-shell{width:325px}}@media(max-width:1100px){main{padding:30px;gap:35px;grid-template-columns:minmax(330px,1fr) minmax(330px,1fr)}h1{font-size:24px}.save-panel{padding:16px}.save-buttons{width:100%}.save-buttons button{flex:1}}@media(max-width:760px){header{height:70px;margin:0 20px;gap:10px}.header-note{display:none}header .quiet{margin-left:auto}.brand{font-size:18px}.brand-mark{width:36px;height:36px;font-size:28px}main{display:flex;flex-direction:column;padding:25px 20px;gap:30px}h1{font-size:23px}.canvas-shell{width:245px}.preview-stage{padding:21px 15px 14px}.preview-bottom{font-size:10px}.save-panel{margin-top:17px}.save-buttons{width:auto}.save-panel .video-note{font-size:11px}.main-tabs{margin-top:20px}.main-tabs button{flex:1;font-size:15px}.item span{font-size:12px}.items-grid{gap:8px}.categories button{font-size:14px}.map-card img{height:120px}.quiet,.suggestions button{font-size:13px}.primary,.secondary{font-size:13px}.editor-heading h2{font-size:25px}footer{flex-direction:column;gap:8px;margin:0 20px}.character-summary p{font-size:13px}}@media(prefers-reduced-motion:reduce){.intro{display:none}}

.action-panel{margin-top:20px;padding:18px;background:#ffffff;border:1px solid var(--line);border-radius:12px}.action-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.action-heading strong{font-size:14px;font-weight:600}.action-heading>span{font-size:11px;color:var(--muted)}.action-buttons{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 20px}.action-buttons button{border:1px solid #e1e1e1;background:#f6f6f6;color:#6e6e6e;border-radius:7px;padding:8px 10px;font-size:12px}.action-buttons button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:white}.timeline-heading{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.timeline-controls{display:flex;gap:5px;align-items:center}.timeline-controls button{border:1px solid var(--line);background:#f9f9f9;color:var(--green);border-radius:5px;padding:7px 9px;font-size:12px}.timeline-controls label{margin-left:auto;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px}.timeline-controls select{font:inherit;background:white;border:1px solid var(--line);border-radius:5px;padding:6px;color:var(--ink)}.action-panel>.subtle{margin:12px 0 0;font-size:11px}.map-card img{image-rendering:auto}.action-panel input[type=range]{height:7px;margin:13px 0 14px}@media(max-width:760px){.action-panel{padding:15px}.action-heading strong{font-size:14px}.action-buttons button{font-size:13px;padding:9px 10px}.timeline-controls button{font-size:13px;padding:8px}.action-panel>.subtle{font-size:12px}.canvas-shell{width:260px}.timeline-controls #restart{font-size:11px}}

.direct-controls{border-bottom:1px solid #e1e1e1;padding:0 0 16px;margin:12px 0}.direct-controls button{min-height:44px;border:1px solid #d4d4d4;border-radius:9px;background:#ffffff;padding:10px 16px;color:#4c4c4c;font:inherit;cursor:pointer}.direct-controls button[aria-pressed=true],.direct-controls button.held{background:#525252;color:white}.gamepad{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.gamepad button{touch-action:none;user-select:none;min-width:48px}.direct-controls .subtle{line-height:1.7}
#preview{touch-action:pan-y pinch-zoom}.canvas-shell,.screen-controls,.screen-controls button{touch-action:pan-y pinch-zoom}.screen-controls{position:absolute;inset:auto 0 8px;display:flex;justify-content:space-between;align-items:flex-end;padding:0 8px;gap:8px;pointer-events:none;z-index:3}.move-pad,.action-pad{display:flex;gap:4px;pointer-events:none}.screen-controls button{pointer-events:auto;min-width:38px;height:44px;padding:0 6px;border:1px solid #ffffffa6;border-radius:10px;background:#363636b8;color:white;font:600 12px sans-serif;box-shadow:0 2px 8px #00000022;user-select:none;-webkit-user-select:none}.screen-controls button.held{background:#f9f9f9e6;color:#363636}.action-panel .timeline-controls{margin-top:14px}.screen-controls button:focus-visible{outline-offset:-3px}.canvas-shell{width:min(100%,325px)}@media(max-width:760px){.canvas-shell{width:min(100%,310px)}.preview-stage{padding:12px 10px}.screen-controls button{min-width:38px}}
.export-grid{display:grid;grid-template-columns:1fr;gap:12px;width:100%}.export-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px 12px;border-top:1px solid var(--line);padding-top:14px}.export-card>span{font-size:14px;font-weight:600}.export-card small{font-size:12px;color:var(--muted)}.export-card button{grid-column:2;grid-row:1/3;white-space:nowrap;min-width:150px}.save-panel .save-note{margin:0}.save-panel #recordStatus{width:100%;color:var(--green);font-size:14px;margin:0}.save-panel #recordStatus:empty{display:none}.applying{position:absolute;inset:0;background:#28282880;z-index:5;display:flex;align-items:center;justify-content:center;flex-direction:column;color:white;gap:12px;pointer-events:none;backdrop-filter:blur(2px)}.applying strong{font-size:19px}.applying small{font-size:14px}.busy-spinner{height:26px;width:26px;border:3px solid #ffffff50;border-top-color:white;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{width:min(460px,calc(100% - 32px));border:1px solid var(--line);border-radius:18px;padding:26px;color:var(--ink);box-shadow:0 20px 80px #00000033}dialog::backdrop{background:#20202080}dialog h3{margin:4px 30px 16px 0;font-size:20px}dialog h3 small{font-size:12px;color:var(--muted)}dialog p{font-size:14px;line-height:1.75}dialog .dialog-close{position:absolute;right:14px;top:12px;border:0;background:none;font-size:25px;color:var(--muted);width:32px;height:32px}.duration-options{display:flex;gap:10px;margin-top:22px}.duration-options button{flex:1;min-height:52px;background:var(--green);border:0;border-radius:9px;color:white}.chat-timing{margin-top:20px}#panel-map .maps-grid{margin-top:22px}@media(max-width:400px){.export-card{grid-template-columns:1fr}.export-card button{grid-column:1;grid-row:auto;width:100%}.export-card small{grid-row:3}}
header .quiet{margin-left:auto}.live-development{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:14px}.development-badge{padding:5px 10px;border-radius:6px;background:#f0f0f0;font-size:12px}.section-heading h1{margin-top:0}.editor-heading h2{margin-top:0}
/* Happy Bori World */
:root{--ink:#222;--muted:#747474;--green:#252525;--line:#dedede;--paper:#fafafa;--accent:#eee}
.preview-stage{background-color:#eee;background-image:radial-gradient(#d8d8d8 1px,transparent 1px)}
.brand-mark{background:#222;color:#fff}.character-summary{background:#f1f1f1}.item.selected{background:#efefef;border-color:#333}
.items-grid{display:flex;flex-direction:column;gap:17px}.item-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.item-row-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;gap:8px}.item-row-heading strong{font-size:12px;font-weight:600;color:#666}.item-arrows{display:flex;gap:5px}.item-arrows button{width:30px;height:29px;border:1px solid #ddd;border-radius:7px;background:#fff;color:#333;font-size:21px;line-height:1}.item-arrows button:disabled{cursor:default;opacity:.3}.item{min-width:0}.item span{overflow-wrap:anywhere;word-break:keep-all}.category-heading{margin-bottom:10px}.preview-caption{gap:10px;flex-wrap:wrap;justify-content:center}.caption-button{font-size:11px;border:1px solid #ccc;background:#fff;color:#444;border-radius:6px;padding:6px 9px;white-space:nowrap}footer{justify-content:center}.screen-controls button{border-color:#ffffff80}.categories button{padding:8px 11px}
@media(max-width:500px){.brand{font-size:18px}.preview-caption{gap:7px}.caption-button{padding:6px 7px}.item-row{gap:6px}.editor-heading p{font-size:13px}}

/* Swipeable two-row wardrobe and HBW wordmark */
.brand-mark{width:62px;height:42px;border-radius:12px;font:800 21px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-1.7px;display:flex;justify-content:center;align-items:center}.brand-dot{font-size:17px;align-self:flex-end;padding-bottom:7px;margin-left:1px;letter-spacing:0}
.swipe-items{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-template-rows:auto;grid-auto-columns:calc((100% - 24px)/4);gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#bbb transparent;touch-action:pan-x pan-y;cursor:grab;padding:3px 0 10px;user-select:none}.swipe-items.two-rows{grid-template-rows:repeat(2,auto)}.swipe-items .item{scroll-snap-align:start;min-height:110px}.swipe-items .item img{pointer-events:none}.swipe-items.dragging{scroll-snap-type:none;cursor:grabbing}.motion-feedback{font-size:12px;color:#777;line-height:1.5;margin:-8px 0 12px}.motion-feedback:has(span:empty):has(button[hidden]){display:none}.motion-feedback button{font-size:12px;text-decoration:underline}.item span{font-size:12px}.items-grid,.item-section{min-width:0}.editor-heading p{line-height:1.6}
