@import "https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Noto+Sans+JP:wght@400;500;600;700&display=swap";:root{color:#22211f;font-synthesis:none;text-rendering:optimizelegibility;--color-bg:#fafaf8;--color-surface:#fff;--color-text:#22211f;--color-muted:#77736f;--color-accent:#5b21b6;--color-accent-dark:#41158d;--color-accent-soft:#f0ebf8;--color-border:#e8e4df;--radius-card:14px;--space-page:clamp(20px, 5vw, 72px);--tap-min:44px;background:#fafaf8;font-family:Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);min-width:320px;min-height:100vh;margin:0}button,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #9e77d5}button{color:inherit}.app-shell{min-height:100vh}.top-bar{height:76px;padding:0 var(--space-page);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20;background:#fafaf8eb;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0}.brand,.age-brand{letter-spacing:.12em;font-family:DM Serif Display,Georgia,serif;font-size:25px}.brand{cursor:pointer;background:0 0;border:0;justify-self:start;padding:8px 0}.brand span,.age-brand span{color:var(--color-accent)}.desktop-nav{align-items:stretch;gap:38px;height:100%;display:flex}.desktop-nav button{min-height:var(--tap-min);color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:13px;position:relative}.desktop-nav button.active{color:var(--color-text);font-weight:600}.desktop-nav button.active:after{content:"";background:var(--color-accent);height:2px;position:absolute;bottom:0;left:0;right:0}.profile-button{color:#827c75;cursor:pointer;background:#f2efeb;border:1px solid #ddd7d1;border-radius:50%;justify-self:end;width:36px;height:36px;font-size:11px}.profile-button:hover{color:var(--color-accent);border-color:#b8a6d0}.account-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1c181f47;justify-content:flex-end;display:flex;position:fixed;inset:0}.account-panel{background:var(--color-surface);width:min(100%,430px);height:100%;padding:38px clamp(24px,5vw,42px);animation:.22s ease-out account-in;overflow-y:auto;box-shadow:-24px 0 70px #1d16241f}@keyframes account-in{0%{opacity:.6;transform:translate(30px)}}.account-panel-head{justify-content:space-between;align-items:start;gap:20px;margin-bottom:30px;display:flex}.account-panel-head h2{margin:0;font:400 32px DM Serif Display,Noto Sans JP,serif}.close-button{width:44px;height:44px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;margin-top:-9px;font-size:25px}.account-intro{color:var(--color-muted);margin:0 0 24px;font-size:12px;line-height:1.9}.google-button{cursor:pointer;background:#fff;border:1px solid #d2ccc5;border-radius:7px;width:100%;min-height:50px;font-weight:600}.google-button:disabled{opacity:.48;cursor:not-allowed}.account-divider{color:#aaa39d;align-items:center;gap:12px;margin:20px 0;font-size:10px;display:flex}.account-divider:before,.account-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.email-field{margin-bottom:12px;display:block}.email-field span{margin-bottom:8px;font-size:11px;font-weight:600;display:block}.email-field input{width:100%;min-height:48px;font:inherit;background:#fff;border:1px solid #dcd6e3;border-radius:7px;padding:0 13px;font-size:13px}.email-field input:focus-visible{outline-offset:2px;outline:3px solid #9e77d5}.account-wide{width:100%}.setup-note,.privacy-note{color:var(--color-muted);font-size:9px;line-height:1.75}.setup-note{margin:13px 0 0}.privacy-note{border-top:1px solid var(--color-border);margin:26px 0 0;padding-top:18px}.account-message{background:var(--color-accent-soft);color:#4d3870;border-radius:7px;margin:14px 0 0;padding:11px 12px;font-size:10px;line-height:1.6}.signed-in-user{border:1px solid var(--color-border);border-radius:10px;align-items:center;gap:13px;margin-bottom:24px;padding:16px;display:flex}.signed-in-user>span{background:var(--color-accent-soft);width:42px;height:42px;color:var(--color-accent);border-radius:50%;place-items:center;font-weight:700;display:grid}.signed-in-user strong,.signed-in-user small{display:block}.signed-in-user strong{font-size:13px}.signed-in-user small{color:var(--color-muted);margin-top:3px;font-size:9px}.import-card{background:#f5f1f9;border-radius:10px;margin-bottom:22px;padding:17px}.import-card strong{font-size:12px}.import-card p{color:var(--color-muted);margin:7px 0 13px;font-size:10px;line-height:1.7}.import-card .primary-button{width:100%;min-height:44px;font-size:11px}.consent-row{cursor:pointer;align-items:start;gap:11px;margin:0 0 24px;padding:4px 0;display:flex}.consent-row input{width:18px;height:18px;accent-color:var(--color-accent);margin:2px 0 0}.consent-row span,.consent-row strong,.consent-row small{display:block}.consent-row strong{font-size:12px}.consent-row small{color:var(--color-muted);margin-top:4px;font-size:9px;line-height:1.6}.main-content,.detail-page{max-width:1240px;padding:0 var(--space-page) 100px;margin:0 auto}.intro{max-width:800px;padding:clamp(54px,9vw,110px) 0 48px}.eyebrow{color:var(--color-accent);letter-spacing:.22em;margin:0 0 13px;font-size:10px;font-weight:700;line-height:1.2}h1,h2,h3,p{text-wrap:pretty}.intro h1,.library-header h1,.detail-info h1,.age-card h1{letter-spacing:.015em;font-family:DM Serif Display,Noto Sans JP,serif;font-weight:400}.intro h1{margin:0 0 22px;font-size:clamp(42px,7vw,72px);line-height:1.14}.intro-copy{color:var(--color-muted);margin:0;font-size:14px;line-height:1.9}.condition-summary{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:20px;padding:20px 0;display:flex}.section-label{color:var(--color-muted);margin-bottom:9px;font-size:11px;display:block}.summary-chips{flex-wrap:wrap;gap:7px;display:flex}.summary-chips span{background:var(--color-accent-soft);color:#4d3870;border-radius:999px;padding:6px 10px;font-size:11px}.text-button,.clear-button,.back-button{min-height:var(--tap-min);color:var(--color-accent);cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:600}.condition-sheet{background:#f8f5fb;border:1px solid #ddd5eb;border-radius:18px;margin-top:18px;padding:clamp(24px,4vw,42px);animation:.24s ease-out sheet-in}@keyframes sheet-in{0%{opacity:0;transform:translateY(-8px)}}.section-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.section-heading h2{margin:0;font-size:clamp(22px,3vw,31px);font-weight:500}.recommendation-note{color:var(--color-muted);margin:7px 0 0;font-size:10px;line-height:1.6}.section-heading.compact{margin-bottom:24px}.choice-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:28px;display:grid}.choice{cursor:pointer;background:#fff;border:1px solid #dcd6e3;border-radius:9px;justify-content:space-between;align-items:center;min-height:52px;padding:10px 16px;font-size:13px;transition:all .16s;display:flex}.choice:hover{border-color:#b8a6d0}.choice.selected{color:#42236c;background:#ebe3f6;border-color:#7652a8}.choice span{color:#7652a8;font-size:16px}.free-text{margin-top:24px;display:block}.free-text>span{margin-bottom:9px;font-size:12px;font-weight:600;display:block}.free-text span small{color:var(--color-muted);margin-left:5px;font-weight:400}.free-text textarea{resize:vertical;width:100%;min-height:88px;color:var(--color-text);background:#fff;border:1px solid #dcd6e3;border-radius:9px;padding:15px;line-height:1.65}.free-text>small{text-align:right;color:var(--color-muted);margin-top:5px;display:block}.primary-button,.secondary-button{cursor:pointer;border-radius:7px;min-height:50px;padding:0 24px;font-weight:600}.primary-button{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.primary-button:hover:not(:disabled){background:var(--color-accent-dark)}.primary-button:disabled{opacity:.62;cursor:not-allowed}.secondary-button{background:0 0;border:1px solid #d2ccc5}.condition-sheet>.primary-button{min-width:220px;margin:22px 0 0 auto;display:block}.works-section{padding-top:62px}.updated{color:var(--color-muted);font-size:11px}.work-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,24px);display:grid}.work-card{min-width:0}.cover{aspect-ratio:.73;border-radius:var(--radius-card);cursor:pointer;border:0;width:100%;padding:0;transition:transform .18s,box-shadow .18s;display:block;position:relative;overflow:hidden;box-shadow:0 15px 40px #2b213414}.cover:hover{transform:translateY(-3px);box-shadow:0 18px 45px #2b213424}.cover-image,.detail-cover-image{object-fit:cover;width:100%;height:100%;display:block}.cover-violet{background:linear-gradient(145deg,#dcd5e9,#8f7ca7)}.cover-rose{background:linear-gradient(145deg,#eadbd8,#b6827e)}.cover-blue{background:linear-gradient(145deg,#d2dee3,#6d8793)}.cover-amber{background:linear-gradient(145deg,#ece2cd,#b89b69)}.rank{color:#fffffff2;text-shadow:0 1px 6px #00000073;font:18px DM Serif Display,serif;position:absolute;top:14px;left:15px}.cover-art{position:absolute;inset:16% 11% 12%}.cover-art i{aspect-ratio:1;background:#ffffff3b;border-radius:50%;width:65%;position:absolute;top:8%;left:18%;box-shadow:0 0 0 22px #ffffff14}.cover-art b{filter:blur(.2px);background:#30253740;border-radius:48% 48% 8% 8%;width:38%;height:56%;position:absolute;bottom:-9%;left:31%}.cover-maker{letter-spacing:.23em;color:#ffffffe6;text-shadow:0 1px 5px #0000008c;font-size:7px;position:absolute;bottom:13px;left:0;right:0}.work-card-body{padding:14px 2px 0}.work-card-title-row{align-items:start;gap:8px;display:flex}.work-title{text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:600;line-height:1.55}.save-button{color:#827b75;cursor:pointer;background:0 0;border:0;flex:0 0 36px;width:36px;height:36px;margin:-7px -6px 0 auto;font-size:18px}.save-button.saved{color:var(--color-accent)}.maker{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;margin:5px 0 10px;font-size:10px;line-height:1.5;overflow:hidden}.work-meta{color:var(--color-muted);align-items:center;gap:9px;font-size:10px;display:flex}.work-meta span+span:before{content:"·";margin-right:9px}.work-meta strong{color:var(--color-text);margin-left:auto;font-size:12px}.reason{border-top:1px solid var(--color-border);color:#66615c;margin:11px 0 0;padding-top:10px;font-size:10px;line-height:1.7}.reason span{color:var(--color-accent);margin-right:5px}.library-header{padding:clamp(54px,9vw,90px) 0 10px}.library-header h1{margin:0 0 14px;font-size:clamp(40px,6vw,60px)}.library-header>p:not(.eyebrow){color:var(--color-muted);font-size:13px}.collection-status{align-items:center;gap:18px;margin-top:24px;display:flex}.collection-status>div{align-items:baseline;gap:8px;display:flex}.collection-status strong{color:var(--color-accent);font:30px DM Serif Display,serif}.collection-status div span,.collection-status small{color:var(--color-muted);font-size:10px}.collection-badge{background:var(--color-accent-soft);color:#4d3870;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:700}.purchase-tag{color:#5b21b6;background:#f0ebf8;border-radius:999px;margin:-2px 0 9px;padding:4px 7px;font-size:8px;font-weight:700;display:inline-flex}.empty-state,.loading-state{border:1px solid var(--color-border);text-align:center;border-radius:14px;padding:64px 24px}.empty-icon{color:var(--color-accent);font-size:32px}.empty-state h3{margin:12px 0 6px;font-size:16px}.empty-state p,.loading-state{color:var(--color-muted);font-size:12px;line-height:1.7}.empty-state .secondary-button{margin-top:18px}.detail-page{padding-top:36px}.back-button{margin-bottom:26px;padding:0}.detail-layout{grid-template-columns:minmax(280px,44%) 1fr;align-items:start;gap:clamp(36px,7vw,86px);display:grid}.detail-cover{aspect-ratio:.78;border-radius:18px;position:sticky;top:112px;overflow:hidden;box-shadow:0 20px 55px #2b213421}.detail-info{padding-top:30px}.detail-info h1{margin:0 0 15px;font-size:clamp(35px,5vw,55px);line-height:1.28}.detail-maker{color:var(--color-muted);font-size:12px}.detail-stats{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);gap:32px;margin:27px 0;padding:20px 0;display:flex}.detail-stats span{font-size:14px;font-weight:600}.detail-stats small{color:var(--color-muted);margin-bottom:5px;font-size:9px;font-weight:400;display:block}.reason-box{background:#f3eff7;border-radius:12px;padding:22px}.reason-box>span{color:var(--color-accent);letter-spacing:.1em;font-size:10px;font-weight:700}.reason-box p{font-size:14px;line-height:1.8}.reason-box ul{color:var(--color-muted);margin:10px 0 0;padding-left:18px;font-size:11px;line-height:1.9}.detail-actions{grid-template-columns:1fr;gap:9px;margin-top:24px;display:grid}.external-button{justify-content:center;align-items:center;gap:6px;text-decoration:none;display:flex}.purchase-button{min-height:44px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;font-size:11px}.purchase-button.active{color:var(--color-accent);font-weight:600}.fixture-note{color:var(--color-muted);margin:12px 0 0;font-size:9px;line-height:1.6}.service-credit{padding:24px var(--space-page) 90px;border-top:1px solid var(--color-border);color:var(--color-muted);text-align:center;font-size:10px}.service-credit a{color:inherit}.bottom-nav{display:none}.age-page{background:radial-gradient(circle at 50% 42%,#f3eef9 0,#fafaf8 44%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}.age-brand{top:28px;left:var(--space-page);position:absolute}.age-card{text-align:center;background:#ffffffd1;border:1px solid #ebe6ef;border-radius:20px;width:min(100%,480px);padding:48px;box-shadow:0 25px 70px #3d275514}.age-mark{width:76px;height:76px;color:var(--color-accent);border:1px solid #9d84bd;border-radius:50%;place-items:center;margin:10px auto 20px;font:30px DM Serif Display,serif;display:grid}.age-card h1{margin:0 0 14px;font-size:34px}.age-card>p:not(.eyebrow){color:var(--color-muted);font-size:12px;line-height:1.9}.age-card .primary-button{width:100%;margin-top:19px}.leave-link{min-height:var(--tap-min);color:var(--color-muted);align-items:center;font-size:11px;display:inline-flex}.age-note{color:#96908a;text-align:center;max-width:470px;margin:24px 0 0;font-size:9px;line-height:1.7}@media (width<=900px){.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-layout{grid-template-columns:minmax(240px,42%) 1fr;gap:36px}}@media (width<=640px){:root{--space-page:18px}.top-bar{grid-template-columns:1fr auto;height:62px}.desktop-nav{display:none}.profile-button{width:34px;height:34px}.main-content{padding-bottom:100px}.intro{padding:52px 0 38px}.intro h1{font-size:37px;line-height:1.24}.condition-summary{align-items:flex-end}.condition-sheet{margin-left:-6px;margin-right:-6px;padding:24px 18px}.section-heading{align-items:start}.choice-grid{grid-template-columns:repeat(2,1fr)}.condition-sheet>.primary-button{width:100%}.works-section{padding-top:48px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}.work-card-body{padding-top:11px}.work-title{font-size:12px}.reason,.updated{display:none}.bottom-nav{z-index:20;height:68px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--color-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fafaf8f5;grid-template-columns:repeat(2,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--color-muted);cursor:pointer;background:0 0;border:0;place-content:center;gap:3px;font-size:9px;display:grid}.bottom-nav button span{font-size:21px;line-height:1}.bottom-nav button.active{color:var(--color-accent);font-weight:600}.detail-page{padding-top:20px;padding-bottom:100px}.detail-layout{grid-template-columns:1fr;gap:28px}.detail-cover{width:min(100%,420px);margin:0 auto;position:relative;top:auto}.detail-info{padding-top:0}.detail-info h1{font-size:34px}.detail-stats{justify-content:space-between;gap:10px}.collection-status{flex-direction:column;align-items:flex-start;gap:8px}.age-card{padding:40px 24px 30px}.age-brand{top:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
