.admin-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in oklab,var(--bg) 55%,rgba(20,20,20,.45));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.admin-gate__card{width:min(100%,380px);padding:28px 24px 22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 48px #1414141f}.admin-gate__title{margin:0 0 .5rem;font-size:1.05rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.admin-gate__lede{margin:0 0 1.25rem;font-size:14px;line-height:1.5;color:var(--muted)}.admin-gate__form{display:flex;flex-direction:column;gap:.65rem}.admin-gate__label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.admin-gate__input{width:100%;box-sizing:border-box;padding:10px 12px;font-family:var(--font-sans);font-size:15px;color:var(--ink);background:var(--bg);border:1px solid color-mix(in oklab,var(--line) 85%,transparent);border-radius:8px}.admin-gate__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 25%,transparent)}.admin-gate__error{margin:0;font-size:13px;line-height:1.45;color:#b42318}.admin-gate__error code{font-size:12px}.admin-gate__submit{margin-top:.35rem;padding:11px 16px;font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--surface);background:var(--ink);border:none;border-radius:8px;cursor:pointer}.admin-gate__submit:hover{opacity:.92}.admin-gate__submit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.admin-gate__back{display:inline-block;margin-top:1.25rem;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--muted)}.admin-gate__back:hover{color:var(--ink)}.admin{min-height:100vh;padding:28px 22px calc(32px + env(safe-area-inset-bottom,0px));max-width:920px;margin:0 auto}.admin__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.admin__title-block{flex:1 1 320px;min-width:0}.admin__title{margin:0 0 .45rem;font-size:1.15rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.admin__lede{margin:0;max-width:52ch;font-size:14px;line-height:1.5;color:var(--muted)}.admin__home{flex:0 0 auto;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-underline-offset:3px;color:var(--muted)}.admin__home:hover{color:var(--ink)}.admin__layout{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr);gap:1.75rem 2rem;align-items:start}@media(max-width:720px){.admin__layout{grid-template-columns:1fr}}.admin__aside{position:sticky;top:16px;display:flex;flex-direction:column;gap:.65rem}.admin__id-row{display:flex;align-items:center;gap:10px}.admin__id-input{flex:1 1 auto;min-width:0}.admin__id-nav{display:flex;gap:6px}.admin__ghost-btn{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;color:var(--muted);background:color-mix(in oklab,var(--surface) 88%,transparent);border:1px solid var(--line);border-radius:8px}.admin__ghost-btn:hover{color:var(--ink)}.admin__ghost-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin__ids-list{margin:0;font-size:11px;font-family:var(--font-mono);line-height:1.45;color:var(--muted);word-break:break-word}.admin__quick{list-style:none;margin:.35rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.admin__quick-btn{margin:0;padding:5px 9px;font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px}.admin__quick-btn:hover{color:var(--ink)}.admin__quick-btn--active{color:var(--ink);border-color:#14141438;background:color-mix(in oklab,var(--surface) 70%,transparent)}.admin__form-section{display:flex;flex-direction:column;gap:1rem}.admin-garment{padding:1.2rem 1.35rem 1.1rem;background:color-mix(in oklab,var(--surface) 50%,var(--bg));border:1px solid var(--line);border-radius:14px}.admin-garment__title{margin:0 0 .95rem;font-family:var(--font-mono);font-size:15px;font-weight:700;letter-spacing:.02em}.admin-garment__row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.admin-garment__row--full{grid-template-columns:1fr}.admin-garment__input{width:100%;margin:0;padding:9px 11px;font-family:var(--font-mono);font-size:13px;color:var(--ink);background:var(--surface);border:1px solid color-mix(in oklab,var(--line) 85%,transparent);border-radius:8px}.admin-garment__input::placeholder{color:color-mix(in oklab,var(--muted) 72%,transparent)}.admin-garment__input:focus{outline:none;border-color:#14141438;box-shadow:0 0 0 3px color-mix(in oklab,var(--line) 65%,transparent)}.admin-garment__input:disabled{opacity:.45;cursor:not-allowed;background:color-mix(in oklab,var(--surface) 70%,var(--bg))}.admin-garment__input--price{flex:0 1 160px;min-width:120px}.admin-garment__price-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:2px}.admin-garment__check{display:inline-flex;align-items:center;gap:8px;margin:0;font-family:var(--font-mono);font-size:13px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.admin-garment__check input{width:15px;height:15px;margin:0;accent-color:var(--ink)}.admin-field{display:flex;flex-direction:column;gap:.3rem}.admin-field__label{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.admin-field__hint{margin:0;font-size:12px;line-height:1.4;color:color-mix(in oklab,var(--muted) 88%,transparent)}.admin-field__hint--before{margin-bottom:-.05rem}.admin-field__input{width:100%;margin:0;padding:10px 12px;font-size:14px;font-family:var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px}.admin-field__input:focus{outline:none;border-color:#14141438;box-shadow:0 0 0 3px color-mix(in oklab,var(--line) 65%,transparent)}.admin__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:.5rem}.admin__primary{padding:10px 18px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--surface);background:var(--ink);border:none;border-radius:999px}.admin__primary:hover{opacity:.92}.admin__primary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.admin__danger{padding:10px 18px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px}.admin__danger:hover{color:var(--ink);border-color:#1414142e}.admin__danger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.admin__upload{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}.admin__file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin__secondary{padding:10px 18px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:color-mix(in oklab,var(--surface) 88%,transparent);border:1px solid var(--line);border-radius:999px}.admin__secondary:hover:not(:disabled){border-color:#1414142e}.admin__secondary:disabled{opacity:.45;cursor:not-allowed}.admin__secondary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.admin__upload-error{margin:0;font-size:13px;line-height:1.45;color:#7a2b2b}.admin__thumb-wrap{margin-top:.15rem;padding:6px;border:1px solid var(--line);border-radius:12px;background:color-mix(in oklab,var(--surface) 70%,transparent)}.admin__thumb{display:block;max-width:min(200px,100%);height:auto;border-radius:8px}.admin__primary:disabled{opacity:.45;cursor:not-allowed}.garment-card{position:absolute;display:flex;flex-direction:column;align-items:stretch;background:transparent;overflow:visible;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.garment-card:active{cursor:grabbing}.garment-card__frame{flex:0 0 auto;width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 8px 26px #1414140f;transition:box-shadow .2s ease,border-color .2s ease}.garment-card:active .garment-card__frame{box-shadow:0 16px 40px #1414141f;border-color:#14141424}.garment-card__media{position:relative;width:100%;overflow:hidden;background:#e8e4dc}.garment-card__media:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none;background:#1414141a}.garment-card__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.garment-card__caption{flex:0 0 auto;margin-top:10px;padding:0 4px;text-align:center;background:transparent}.garment-card__label{margin:0;width:100%;font-size:10px;font-weight:400;letter-spacing:.01em;line-height:1.35;min-height:2.7em;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:color-mix(in oklab,var(--ink) 50%,transparent)}.garment-card__hint{margin:3px 0 0;font-size:7px;line-height:1.15;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:color-mix(in oklab,var(--muted) 42%,transparent)}.garment-detail-modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:#14141459;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.garment-detail-modal{position:relative;margin:0;padding:1.5rem 1.35rem 1.35rem;max-width:380px;width:100%;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 24px 64px #1414142e;font-family:var(--font-sans);color:var(--ink)}.garment-detail-modal__close{position:absolute;top:10px;right:10px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;margin:0;padding:0;font-size:1.35rem;line-height:1;font-weight:400;color:var(--muted);background:transparent;border:none;border-radius:8px}.garment-detail-modal__close:hover{color:var(--ink);background:color-mix(in oklab,var(--line) 80%,transparent)}.garment-detail-modal__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.garment-detail-modal__title{margin:0 2rem 1rem 0;font-size:1.05rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;line-height:1.25}.garment-detail-modal__list{margin:0;display:flex;flex-direction:column;gap:.85rem}.garment-detail-modal__row{margin:0}.garment-detail-modal__dt{margin:0 0 .2rem;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.garment-detail-modal__dd{margin:0;font-size:14px;font-weight:500;line-height:1.4;color:var(--ink)}.garment-detail-modal__empty{margin:.25rem 0 0;font-size:13px;line-height:1.45;color:var(--muted)}.app{min-height:100vh;display:flex;flex-direction:column}.app__reset{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));z-index:10000;margin:0;padding:8px 10px;font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);background:transparent;border:none;border-radius:8px}.app__reset:hover{color:var(--ink)}.app__reset:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app__admin{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom,0px));right:calc(12px + env(safe-area-inset-right,0px));z-index:10000;margin:0;padding:8px 12px;font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;color:var(--muted);background:color-mix(in oklab,var(--surface) 92%,transparent);border:1px solid var(--line);border-radius:999px;box-shadow:0 4px 18px #1414140f}.app__admin:hover{color:var(--ink);border-color:#14141424}.app__admin:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app__canvas-wrap{flex:1;padding:8px 22px calc(16px + env(safe-area-inset-bottom,0px));max-width:1400px;margin:0 auto;width:100%}.app__canvas{position:relative;margin:0 auto}.app__hero{position:fixed;top:50%;left:50%;z-index:44;display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:0;text-align:center;pointer-events:none;transform:translate(-50%,-50%)}.app__hero a{pointer-events:auto}.app__hero-logo{margin:0;font-size:clamp(.78rem,2.15vw,1.85rem);font-weight:700;letter-spacing:.12em;line-height:1.15;text-transform:uppercase;white-space:nowrap}.app__hero-contact{display:inline-flex;flex-wrap:nowrap;align-items:baseline;justify-content:center;gap:.45rem;margin:0;white-space:nowrap;font-size:12px;font-weight:500;font-family:var(--font-mono);letter-spacing:.04em}.app__hero-contact-sep{color:var(--muted);-webkit-user-select:none;user-select:none}.app__hero-link{color:var(--muted);text-decoration:none;letter-spacing:.04em}.app__hero-link:hover{color:var(--ink)}:root{--bg: #ece9e2;--surface: #f7f5f0;--ink: #141414;--muted: #5c5a55;--line: rgba(20, 20, 20, .08);--accent: #2a2a2a;--font-sans: "DM Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}#root{min-height:100%}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit}
