:root{--text-h1:32px;--text-h2:24px;--text-h3:18px;--text-body:16px;--text-label:14px;--text-caption:12px;--leading-heading:1.5;--leading-body:1.8;--tracking:0;--radius-small:8px;--radius-field:16px;--radius-card:24px;--radius-full:999px;--radius-circle:50%;--control-height:56px;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-28:28px;--space-32:32px;--space-40:40px;--space-72:72px}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#121019;--ink:#f0e9f5;--accent:#d4bfeb;--secondary-text:#beb1cb;--line:#352c40;--surface:#201a29;--field:#18141f;--cta:linear-gradient(110deg, #d4bde9, #e8c3cf);--cta-ink:#42334f;--error:#f1a8b7;--chat-overlay:#121019aa;--shadow:0 8px 24px #0d091b20}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fcf9fc;--ink:#51465e;--accent:#706082;--secondary-text:#786b83;--line:#e9deeb;--surface:#fff;--field:#f7f1f8;--cta:linear-gradient(110deg, #e0d3e9, #f0d8da);--error:#aa465a;--chat-overlay:#fcf9fcbb;--shadow:0 8px 24px #54416212}*{box-sizing:border-box}body{background:var(--background);color:var(--ink);font:400 var(--text-body)/var(--leading-body) "Hiragino Maru Gothic ProN", "Yu Gothic", Meiryo, sans-serif;line-break:strict;overflow-wrap:anywhere;margin:0}a{color:inherit;text-underline-offset:4px}button,input,textarea{font:inherit}button,summary{cursor:pointer}button{color:inherit}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button:hover:not(:disabled),.primary:hover{filter:brightness(.97)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;line-height:var(--leading-heading)}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}small{font-size:var(--text-caption);color:var(--secondary-text)}p{white-space:pre-wrap}.primary,.secondary{justify-content:center;align-items:center;gap:var(--space-12);min-height:var(--control-height);padding:var(--space-12) var(--space-24);border-radius:var(--radius-full);text-align:center;border:0;width:100%;font-weight:600;text-decoration:none;display:flex}.primary{background:var(--cta);color:var(--cta-ink);box-shadow:var(--shadow)}.secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.icon-button{background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.text-button{color:var(--accent);padding:var(--space-8);font-size:var(--text-label);background:0 0;border:0}.brand{letter-spacing:-1px;font-family:Georgia,serif;font-size:32px;font-weight:600;line-height:1;text-decoration:none}.brand span{color:#d5a4b6}.shell{background:var(--background);border-inline:1px solid var(--line);max-width:640px;min-height:100dvh;margin:auto}.topbar{height:72px;padding:0 var(--space-24);align-items:center;gap:var(--space-16);border-bottom:1px solid var(--line);display:flex}.tagline{font-size:var(--text-caption);color:var(--secondary-text);flex:1}.page{gap:var(--space-24);padding:var(--space-32) var(--space-24) calc(100px + env(safe-area-inset-bottom));flex-direction:column;display:flex}.page>p{color:var(--secondary-text)}.compact-title{font-size:var(--text-h3)}.gate{padding-top:var(--space-72)}.empty{padding:var(--space-40) var(--space-24);text-align:center}.card{padding:var(--space-24);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);gap:var(--space-16);flex-direction:column;display:flex}.card p{color:var(--secondary-text);font-size:var(--text-label)}.card h2{font-size:var(--text-h3)}.eyebrow{font-size:var(--text-caption);letter-spacing:.12em;color:var(--accent)}.step-label{font-size:var(--text-caption);letter-spacing:.08em;color:var(--accent);justify-content:space-between;display:flex}.step-track{gap:var(--space-8);margin-top:calc(-1 * var(--space-12));display:flex}.step-track span{background:var(--line);border-radius:var(--radius-full);flex:1;height:3px}.step-track .active{background:var(--accent)}.intro-cards{gap:var(--space-16);display:grid}.intro-card{flex-direction:row;align-items:center}.intro-card>svg{color:var(--accent);flex-shrink:0}.intro-card h2{font-size:var(--text-body);margin-bottom:var(--space-4)}input:not([type=checkbox]),textarea{background:var(--field);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-field);padding:var(--space-16);min-width:0}textarea{resize:vertical;min-height:120px;line-height:1.8}textarea::placeholder,input::placeholder{color:var(--secondary-text);opacity:.8}.large-input{min-height:220px}.field-label{font-size:var(--text-label);margin-bottom:calc(-1 * var(--space-16));font-weight:500}.field-label small{margin-left:var(--space-8)}.hint{font-size:var(--text-caption);color:var(--secondary-text)}.notice{font-size:var(--text-label);padding:var(--space-16);border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface)}.error{padding:var(--space-12);border-radius:var(--radius-small);font-size:var(--text-label);border:1px solid;color:var(--error)!important}.success{color:var(--ink);padding:var(--space-12);background:var(--surface);border-left:3px solid var(--accent);font-size:var(--text-label)}.export-prompt{white-space:pre-wrap;max-height:260px;font-size:var(--text-caption);padding:var(--space-16);background:var(--field);border-radius:var(--radius-field);overflow:auto}details{font-size:var(--text-label);color:var(--secondary-text)}summary{padding:var(--space-8) 0}.tabs{gap:var(--space-4);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-full);display:flex}.tabs button{padding:var(--space-8) var(--space-4);color:var(--secondary-text);border-radius:var(--radius-full);font-size:var(--text-label);background:0 0;border:0;flex:1}.tabs button[aria-pressed=true]{color:var(--cta-ink);background:var(--cta)}.fields{gap:var(--space-24);display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend{padding:0 0 var(--space-8);font-size:var(--text-label);font-weight:500}.entry{margin-bottom:var(--space-12)}.entry textarea{min-height:80px}.entry-meta{justify-content:space-between;align-items:center;gap:var(--space-8);display:flex}.back-link{color:var(--secondary-text);font-size:var(--text-label);text-decoration:none}.body-heading{font-size:var(--text-body);font-weight:400}.portrait{aspect-ratio:3/4;border-radius:var(--radius-card);width:min(100%,260px);margin:0 auto;position:relative;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.portrait figcaption{bottom:var(--space-12);left:var(--space-12);color:#fff;font-size:var(--text-caption);padding:var(--space-4) var(--space-12);border-radius:var(--radius-full);background:#241c30aa;position:absolute}.image-grid{gap:var(--space-12);grid-template-columns:1fr 1fr;display:grid}.image-choice{aspect-ratio:3/4;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface);font-size:var(--text-caption);padding:0;position:relative;overflow:hidden}.image-choice img{object-fit:cover;width:100%;height:100%;display:block}.image-choice>span:not(.selected-mark){padding:var(--space-16);display:block}.image-choice[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}.selected-mark{bottom:var(--space-8);left:var(--space-8);align-items:center;gap:var(--space-4);color:var(--cta-ink);background:var(--accent);padding:var(--space-4) var(--space-8);border-radius:var(--radius-full);display:flex;position:absolute}.history-grid{grid-template-columns:repeat(3,1fr)}.check-label{gap:var(--space-12);font-size:var(--text-label);align-items:center;display:flex}input[type=checkbox]{accent-color:var(--accent);width:20px;height:20px}.background-options{gap:var(--space-12);display:flex}.background-swatch{border:1px solid var(--line);aspect-ratio:1;border-radius:var(--radius-field);color:var(--ink);flex:1}.background-swatch[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}.standard{background-color:var(--background)}.dusk{background:linear-gradient(150deg, color-mix(in srgb, var(--background) 78%, #78526c), color-mix(in srgb, var(--background) 75%, #dc9374))}.sky{background:linear-gradient(150deg, color-mix(in srgb, var(--background) 75%, #6c8bad), color-mix(in srgb, var(--background) 90%, #9bbace))}.bottom-nav{width:min(640px,100%);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);z-index:10;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{padding:var(--space-12) var(--space-4);color:var(--secondary-text);font-size:var(--text-caption);align-items:center;gap:var(--space-4);flex-direction:column;flex:1;text-decoration:none;display:flex}.bottom-nav a[aria-current=page]{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.chat{height:calc(100dvh - 148px - env(safe-area-inset-bottom));background-position:50%;background-size:cover;flex-direction:column;min-height:380px;display:flex}.chat-header{gap:var(--space-12);padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--background) 90%, transparent);align-items:center;display:flex}.chat-header>div{flex:1;min-width:0}.chat-header h1{font-size:var(--text-h3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-header small{font-size:11px}.avatar{background:var(--cta);width:48px;height:48px;color:var(--cta-ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.small{width:32px;height:32px}.stamina{gap:var(--space-4);font-size:var(--text-label);padding:var(--space-4) var(--space-8);border:1px solid var(--line);border-radius:var(--radius-full);align-items:center;text-decoration:none;display:flex}.chat-menu{position:relative}.chat-menu summary{place-items:center;width:36px;height:40px;list-style:none;display:grid}.chat-menu summary::-webkit-details-marker{display:none}.chat-menu nav{background:var(--surface);width:220px;padding:var(--space-8);border:1px solid var(--line);border-radius:var(--radius-field);z-index:20;box-shadow:var(--shadow);display:grid;position:absolute;top:44px;right:0}.chat-menu nav a{padding:var(--space-12);text-decoration:none}.messages{overscroll-behavior:contain;padding:var(--space-24) var(--space-20);flex:1;overflow-y:auto}.conversation-start{justify-content:center;align-items:center;gap:var(--space-24);min-height:250px;color:var(--secondary-text);font-size:var(--text-label);text-align:center;flex-direction:column;display:flex}.turn{gap:var(--space-20);margin-bottom:var(--space-28);flex-direction:column;display:flex}.bubble{padding:var(--space-12) var(--space-16);border-radius:var(--radius-card);max-width:86%;font-size:var(--text-label);box-shadow:var(--shadow);white-space:pre-wrap}.user-bubble{color:var(--cta-ink);background:var(--cta);align-self:flex-end}.ai-bubble{background:var(--surface);border:1px solid var(--line);align-self:flex-start}.ai-message{align-items:flex-start;gap:var(--space-8);display:flex}.composer-area{padding:var(--space-12) var(--space-16) var(--space-8);background:color-mix(in srgb, var(--background) 92%, transparent)}.composer-area .error{margin-bottom:var(--space-8)}.composer{gap:var(--space-8);padding:var(--space-8);background:var(--field);border:1px solid var(--line);border-radius:var(--radius-field);align-items:flex-end;display:flex}.composer:focus-within{border-color:var(--accent)}.composer textarea{padding:var(--space-8);resize:none;background:0 0;border:0;outline:none;min-height:44px;max-height:120px}.send-button{border-radius:var(--radius-full);background:var(--cta);width:44px;height:44px;color:var(--cta-ink);border:0;flex-shrink:0;place-items:center;display:grid}.composer-hint{text-align:center;color:var(--secondary-text);padding-top:var(--space-4);font-size:10px}.balance-card{text-align:center;align-items:center}.balance-card strong{font-size:var(--text-h1);font-weight:500}.balance-card strong small{margin-left:var(--space-8);font-size:var(--text-label)}.email-line{align-items:center;gap:var(--space-8);display:flex}.auth-page{gap:var(--space-32);padding-top:var(--space-72)}.auth-page form{gap:var(--space-24);flex-direction:column;display:flex}.landing{max-width:1080px;margin:auto}.landing-nav{padding:var(--space-24);justify-content:space-between;align-items:center;display:flex}.landing-nav>div{gap:var(--space-16);align-items:center;display:flex}.landing-nav a:not(.brand){font-size:var(--text-label);text-decoration:none}.hero{max-width:900px;margin:auto;position:relative}.hero-image{border-radius:var(--radius-card);height:440px;position:relative;overflow:hidden}.hero-image img{object-fit:cover;object-position:center 30%}.hero-copy{text-align:center;width:calc(100% - 48px);max-width:580px;padding:var(--space-32);border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);align-items:center;gap:var(--space-20);box-shadow:var(--shadow);flex-direction:column;margin:-72px auto 0;display:flex;position:relative}.hero-copy p{color:var(--secondary-text);font-size:var(--text-label)}.hero-copy .primary{max-width:360px}.landing-section{padding:var(--space-72) var(--space-24) 0;text-align:center}.landing-section h2{margin-top:var(--space-16);margin-bottom:var(--space-32)}.landing-features{gap:var(--space-20);text-align:left;grid-template-columns:repeat(3,1fr);display:grid}.landing-features svg{color:var(--accent)}.landing-features h3{font-size:var(--text-body)}.faq{max-width:660px;margin:auto}.faq details{border-bottom:1px solid var(--line);text-align:left;padding:var(--space-12) 0}.faq summary{color:var(--ink)}.faq details p{padding:var(--space-12) 0}.final-cta .primary{max-width:360px;margin:auto}footer{margin-top:var(--space-72);padding:var(--space-32) var(--space-24);border-top:1px solid var(--line);font-size:var(--text-caption);color:var(--secondary-text);justify-content:space-between;display:flex}.skip-link{left:var(--space-16);padding:var(--space-12);background:var(--surface);z-index:100;position:fixed;top:-100px}.skip-link:focus{top:var(--space-16)}@media (max-width:600px){.shell{border:0}.hero-image{border-radius:0;height:380px}.hero-copy{padding:var(--space-28) var(--space-20)}.landing-features{grid-template-columns:1fr}.landing-section{padding-top:var(--space-40)}.topbar{height:64px}.chat{height:calc(100dvh - 140px - env(safe-area-inset-bottom))}}@media (max-width:380px){.page,.topbar{padding-inline:var(--space-16)}.tagline{display:none}.topbar .icon-button{margin-left:auto}.chat-header{padding-inline:var(--space-12);gap:var(--space-8)}.chat-header small{display:none}.hero-copy{width:calc(100% - 32px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.shell{max-width:640px}.page{padding:0 var(--space-20) calc(var(--space-24) + env(safe-area-inset-bottom));gap:var(--space-24)}.page>:first-child:not(.page-header){margin-top:var(--space-24)}.page-header{gap:var(--space-8);min-height:72px;margin-inline:calc(-1 * var(--space-8));grid-template-columns:44px 1fr 44px;align-items:center;display:grid}.page-header h1{text-align:center}.page-header a{text-decoration:none}.onboarding-page{padding-inline:var(--space-24)}.onboarding-page h1{font-size:var(--text-h2)}.onboarding-page>p{font-size:var(--text-label);line-height:1.8}.onboarding-shell .topbar{border:0;justify-content:space-between}.onboarding-shell .tagline{flex:0 auto}.step-track{margin-top:0}.page-action{padding:var(--space-16) 0 calc(var(--space-16) + env(safe-area-inset-bottom));background:var(--background);z-index:2;gap:var(--space-12);display:grid;position:sticky;bottom:0}.memory-groups{gap:var(--space-16);display:grid}.memory-group{border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface);overflow:hidden}.memory-group>summary{padding:var(--space-16);font-size:var(--text-body);font-weight:500}.memory-group .fields{padding:0 var(--space-16) var(--space-16);gap:var(--space-20);display:grid}.memory-group label{gap:var(--space-8);margin:0;display:grid}.memory-group textarea{font-size:var(--text-body);min-height:80px}.chat{height:100dvh;min-height:380px}.chat-header{padding:var(--space-12) var(--space-20)}.chat-menu summary{width:44px;height:44px}.theme-menu{border-top:1px solid var(--line);padding-top:var(--space-8);display:grid}.theme-menu button{align-items:center;gap:var(--space-8);padding:var(--space-12);text-align:left;background:0 0;border:0;display:flex}.theme-menu button svg:last-child{margin-left:auto}.composer-area{padding-bottom:calc(var(--space-8) + env(safe-area-inset-bottom));background:0 0;border:0;border-radius:0}.composer{background:color-mix(in srgb, var(--field) 78%, transparent)}.avatar-button{border:0;padding:0}.dialog{width:min(342px,100vw - 32px);max-height:calc(100dvh - 48px);padding:var(--space-32) var(--space-24);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);color:var(--ink);overflow-y:auto;box-shadow:0 12px 32px #0d091b40}.dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#100b2066}.dialog-close{top:var(--space-8);right:var(--space-8);z-index:3;position:absolute}.chat-modal{gap:var(--space-20);text-align:center;padding-top:var(--space-12);justify-items:center;display:grid}.chat-modal .brand{font-size:40px}.chat-modal h2{font-size:var(--text-h2)}.chat-modal p{font-size:var(--text-label);color:var(--secondary-text)}.chat-modal form{gap:var(--space-12);text-align:left;width:100%;display:grid}.chat-modal .field-label{margin:0}.chat-modal .consent{font-size:var(--text-caption)}.modal-symbol{width:56px;height:56px;color:var(--accent);background:var(--field);border-radius:50%;place-items:center;display:grid}.plan-offer{width:100%;padding:var(--space-16);background:var(--field);border:1px solid var(--line);border-radius:var(--radius-field);gap:var(--space-8);display:grid}.plan-offer strong,.plan-price{font-size:var(--text-h1);font-weight:500}.plan-offer ul{padding-left:var(--space-20);text-align:left;font-size:var(--text-label);margin:0}.image-dialog{width:fit-content;max-width:calc(100vw - 32px);padding:var(--space-40) var(--space-16) var(--space-16)}.image-dialog>img{object-fit:contain;width:auto;max-width:min(600px,100vw - 64px);height:auto;max-height:calc(100dvh - 112px);display:block}.visual-preview{gap:var(--space-12);justify-items:center;margin:0;display:grid}.preview-image{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--field);width:min(260px,100%);padding:0;display:block;overflow:hidden}.preview-image img{object-fit:contain;width:100%;height:100%;display:block}.visual-page.background .preview-image img{object-fit:cover}.visual-preview figcaption{padding:var(--space-4) var(--space-12);border-radius:var(--radius-full);background:var(--field);font-size:var(--text-caption);color:var(--secondary-text)}.visual-page.icon .image-choice{aspect-ratio:1}.visual-page.icon .image-choice img{object-fit:contain}.background-art{place-items:center;width:100%;height:100%;display:grid}.background-art.full{width:min(46dvh,100vw - 64px);height:min(70dvh,700px)}.original-sample{width:calc((100% - var(--space-12)) / 2);margin:0 auto}.original-sample .image-choice{width:100%}.section-heading{gap:var(--space-8);justify-content:space-between;align-items:center;display:flex}.creation{padding:var(--space-16);gap:var(--space-16)}.creation label{margin:0}.profile-line{align-items:center;gap:var(--space-16);display:flex}@media (max-width:380px){.page{padding-inline:var(--space-16)}}.brand{aspect-ratio:2078/757;background:var(--accent);width:88px;font-size:0;display:inline-block;-webkit-mask:url(/logo.png) 50%/contain no-repeat;mask:url(/logo.png) 50%/contain no-repeat}.brand span{display:none}.chat-modal .brand{height:32px;font-size:0}.onboarding-shell{background:linear-gradient(155deg,#f1ebf6,#fcf9fc 38%,#fcf0ed)}.onboarding-shell .topbar{border-bottom:1px solid var(--line);background:#fcf9fcf5;grid-template-columns:44px 1fr 60px;height:76px;display:grid}.onboarding-shell .topbar .brand{justify-self:center}.onboarding-shell .icon-button{color:var(--accent);background:#f2ecf5}.step-fraction{font-size:var(--text-label);white-space:nowrap}.step-fraction span{color:var(--secondary-text)}.onboarding-page{gap:var(--space-20);min-height:calc(100dvh - 76px)}.onboarding-page>.step-track:first-child{margin:0 calc(-1 * var(--space-24));padding:var(--space-12) var(--space-24);gap:var(--space-8);background:#fcf9fcf5}.onboarding-page .step-track span{height:5px}.onboarding-page .step-track span.active{background:#9681a6}.onboarding-page>p{font-size:var(--text-body)}.onboarding-page>.primary{margin-top:auto}.intro-card{padding:var(--space-20) var(--space-16);background:color-mix(in srgb, var(--background) 85%, transparent);align-items:flex-start;gap:var(--space-12)}.intro-card h2{font-size:var(--text-body);margin-bottom:var(--space-8);font-weight:400}.step-number{width:32px;height:32px;color:var(--accent);font-size:var(--text-label);background:#eee5f2;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.dialog{background:var(--background)}.chat-modal form{text-align:center}.chat-modal form .hint{font-size:var(--text-caption)}.plan-offer strong{font-size:var(--text-h2);color:var(--accent)}.consent{font-size:var(--text-caption);color:var(--secondary-text);line-height:1.7}.legal-links{gap:var(--space-8) var(--space-16);font-size:var(--text-caption);flex-wrap:wrap;display:flex}footer .legal-links{justify-content:flex-end}.legal-page{gap:var(--space-24);padding-top:0}.legal-header{align-items:center;min-height:72px;display:flex}.legal-page h1{font-size:var(--text-h2)}.legal-page article{gap:var(--space-16);font-size:var(--text-label);line-height:1.8;display:grid}.legal-page article h2{font-size:var(--text-h3);margin-top:var(--space-16)}.legal-page article ul{gap:var(--space-8);padding-left:1.4em;display:grid}.legal-page article table{border-collapse:collapse;width:100%;font-size:var(--text-caption)}.legal-page article th,.legal-page article td{padding:var(--space-8);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.legal-page article th{color:var(--secondary-text);font-weight:600}.legal-page article a{overflow-wrap:anywhere}.gem-balance{flex-direction:column;gap:5px;min-width:85px;display:inline-flex}.gem-gauge{background:var(--line,#dfd8d3);border-radius:6px;width:100%;height:6px;display:block;overflow:hidden}.gem-gauge>span{background:var(--accent,#c8816c);border-radius:inherit;height:100%;display:block}.uploaded-icon{aspect-ratio:1;width:160px}.uploaded-icon img{object-fit:cover;width:100%;height:100%}.upload-control input{max-width:100%}.onboarding-visual .image-choice{aspect-ratio:1}.balance-card .gem-balance{font-size:clamp(20px,5vw,28px)}
