:root{color-scheme:light;--paper:#faf8f4;--paper-deep:#f3f0ea;--ink:#15181b;--ink-muted:rgba(21,24,27,0.62);--ink-faint:rgba(21,24,27,0.42);--rule:rgba(21,24,27,0.16);--rule-soft:rgba(21,24,27,0.09);--accent:#2e5a4b;--accent-soft:rgba(46,90,75,0.09);--serif:"Hiragino Mincho ProN","Yu Mincho",YuMincho,Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",YuGothic,Meiryo,sans-serif;--gutter:clamp(1.25rem,5vw,4rem);--content:74rem;background:var(--paper);color:var(--ink);font-family:var(--sans);font-synthesis:none}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{min-width:20rem;background:var(--paper)}body{margin:0;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}h1,p{margin:0}button,input,select,textarea{font:inherit}.site-shell{min-height:100svh;display:flex;flex-direction:column}.site-header{border-bottom:1px solid var(--rule)}.portal-section,.site-footer-inner,.site-header-inner{width:min(100%,var(--content));margin-inline:auto;padding-inline:var(--gutter)}.site-header-inner{min-height:4.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:.75rem}.brand{min-width:0;display:flex;align-items:baseline;gap:1rem}.brand-name{font-family:var(--serif);font-size:.9rem;letter-spacing:.09em;line-height:1.5}.brand-label,.eyebrow{color:var(--ink-faint);font-family:Georgia,Times New Roman,serif;font-size:.625rem;letter-spacing:.2em;line-height:1.4;text-transform:uppercase}.health{min-width:max-content;display:inline-flex;align-items:center;gap:.5rem;margin:0;padding:.32rem .68rem .35rem;border:1px solid var(--rule);border-radius:999px;background:var(--paper-deep);color:var(--ink-muted);font-size:.7rem;letter-spacing:.08em;line-height:1.4}.health-dot{position:relative;width:.42rem;height:.42rem;flex:none;border-radius:50%;background:var(--ink-faint)}.health[data-state=healthy]{border-color:rgba(46,90,75,.3);background:var(--accent-soft);color:var(--accent)}.health[data-state=healthy] .health-dot{background:var(--accent)}.health[data-state=healthy] .health-dot:after{position:absolute;inset:-.25rem;border:1px solid rgba(46,90,75,.38);border-radius:50%;content:"";animation:status-pulse 2.8s ease-out infinite}.health[data-state=unavailable] .health-dot{background:#9b5d35}.portal{flex:1 1}.portal-section{padding-block:clamp(2.6rem,6vh,4.75rem) clamp(2.5rem,5vh,4rem)}.portal-intro{max-width:54rem}#portal-title{font-size:clamp(3.2rem,7vw,6rem);letter-spacing:.02em}.eyebrow{margin-bottom:.9rem;color:var(--accent)}h1{font-family:var(--serif);font-size:clamp(2.7rem,5.5vw,4.9rem);font-weight:400;letter-spacing:.015em;line-height:1.18}.lead{margin-top:1rem;color:var(--ink-muted);font-size:clamp(.84rem,1.25vw,.98rem);letter-spacing:.04em;line-height:1.7}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(2rem,5vh,3.5rem);border-block:1px solid var(--rule)}.tool-link{min-width:0;min-height:clamp(9.25rem,18vh,11rem);display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:clamp(1rem,2.4vw,2rem);gap:clamp(1rem,2.4vw,2rem);align-items:start;padding:clamp(1.35rem,2.8vw,2.25rem);border-bottom:1px solid var(--rule-soft);text-decoration:none;transition:background-color .16s ease,color .16s ease}.tool-link:nth-child(odd){border-right:1px solid var(--rule)}.tool-link:nth-last-child(-n+2){border-bottom:0}a.tool-link:focus-visible,a.tool-link:hover{background:var(--paper-deep);outline:none}a.tool-link:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.tool-link.is-disabled{cursor:not-allowed}.tool-number{padding-top:.2rem;color:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:.78rem;letter-spacing:.12em;line-height:1.4}.tool-copy{min-width:0;display:flex;flex-direction:column;gap:.72rem}.tool-name{font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.65rem);letter-spacing:.065em;line-height:1.35}.tool-description{color:var(--ink-muted);font-size:.78rem;letter-spacing:.035em;line-height:1.7}.tool-action{min-height:100%;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:1.5rem}.tool-status{padding:.2rem .48rem;border:1px solid var(--rule);background:var(--paper-deep);color:var(--ink-faint);font-size:.625rem;letter-spacing:.12em;line-height:1.4}.tool-arrow{color:var(--ink-faint);font-family:Georgia,Times New Roman,serif;font-size:1.25rem;line-height:1}.site-footer{border-top:1px solid var(--rule)}.site-footer-inner{min-height:3.75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.9rem;color:var(--ink-faint);font-size:.66rem;letter-spacing:.08em}@keyframes status-pulse{0%{opacity:.75;transform:scale(.65)}72%,to{opacity:0;transform:scale(1.45)}}@media (prefers-reduced-motion:reduce){.health[data-state=healthy] .health-dot:after{animation:none;opacity:.35}.tool-link{transition:none}}@media (max-width:42rem){.site-header-inner{min-height:4.25rem;gap:.75rem}.brand,.brand-name{display:block}.brand-name{max-width:12.5rem;font-size:.78rem;letter-spacing:.06em}.brand-label{display:none}.portal-section{padding-top:2rem;padding-bottom:2.25rem}h1{font-size:clamp(2rem,10.5vw,2.75rem);line-height:1.22}.lead{margin-top:.7rem}.tool-grid{grid-template-columns:1fr;margin-top:1.5rem}.tool-link{min-height:6.4rem;gap:.8rem;padding:1rem 0;border-bottom:1px solid var(--rule-soft)}.tool-link,.tool-link:nth-child(odd){border-right:0}.tool-link:nth-last-child(2){border-bottom:1px solid var(--rule-soft)}.tool-link:last-child{border-bottom:0}.tool-copy{gap:.42rem}.tool-name{font-size:1.08rem;letter-spacing:.045em}.tool-description{font-size:.7rem}.tool-status{padding-inline:.38rem;font-size:.58rem}.tool-action{gap:1rem}}@media (max-width:23rem){.health{padding-inline:.5rem;font-size:.64rem;letter-spacing:.04em}.tool-link{grid-template-columns:auto minmax(0,1fr)}.tool-action{grid-column:2;min-height:0;flex-direction:row;align-items:center}.tool-arrow{display:none}}.auth-shell{min-height:100svh;display:grid;place-items:center;padding:clamp(1.25rem,5vw,4rem);background:linear-gradient(135deg,var(--accent-soft),transparent 45%),var(--paper)}.auth-panel{width:min(calc(100vw - var(--gutter) - var(--gutter)),40rem);padding:clamp(2rem,6vw,4rem);border:1px solid var(--rule);background:rgba(250,248,244,.94)}.auth-panel-centered{text-align:center}.auth-back{display:inline-block;margin-bottom:3rem;color:var(--ink-muted);font-size:.72rem;letter-spacing:.06em;text-decoration:none}.auth-title{font-size:clamp(2rem,5vw,3.2rem);line-height:1.35;word-break:keep-all}.auth-lead{margin-top:1rem;color:var(--ink-muted);font-size:.84rem;line-height:1.9}.auth-form{display:grid;grid-gap:.8rem;gap:.8rem;margin-top:2.5rem}.auth-form label{color:var(--ink-muted);font-size:.72rem;letter-spacing:.08em}.auth-form input{width:100%;min-height:3.25rem;padding:.75rem .9rem;border:1px solid var(--rule);border-radius:0;background:white;color:var(--ink)}.auth-form input:focus-visible{border-color:var(--accent);outline:2px solid rgba(46,90,75,.18);outline-offset:1px}.auth-actions button,.auth-form button,.auth-primary{min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.4rem;border:1px solid var(--accent);background:var(--accent);color:var(--paper);cursor:pointer;letter-spacing:.08em;text-decoration:none}.auth-form button:disabled{cursor:wait;opacity:.65}.auth-error,.auth-notice{margin-top:2rem;padding:1rem;border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--ink-muted);font-size:.8rem;line-height:1.8}.auth-error{margin-top:.4rem;border-left-color:#9b5d35}.auth-actions{display:flex;justify-content:center;gap:.9rem;margin-top:2.5rem}.auth-secondary{min-height:3.25rem;display:inline-flex;align-items:center;padding:.75rem 1.2rem;border:1px solid var(--rule);color:var(--ink-muted);text-decoration:none}.auth-sign-out{display:block;margin:1.5rem auto 0;padding:0;border:0;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:.7rem;letter-spacing:.08em;text-decoration:underline;text-underline-offset:.25rem}@media (max-width:30rem){.auth-panel{width:calc(100vw - 2.5rem);min-width:0;padding:1.5rem}.auth-back{margin-bottom:2.25rem}.auth-title{font-size:clamp(1.8rem,8.5vw,2.25rem)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button-primary,.button-secondary{min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.4rem;border:1px solid var(--accent);border-radius:0;cursor:pointer;font-size:.78rem;font-weight:600;letter-spacing:.08em;line-height:1.4;text-decoration:none;transition:opacity .16s ease,background-color .16s ease}.button-primary{background:var(--accent);color:var(--paper)}.button-secondary{border-color:var(--rule);background:transparent;color:var(--ink-muted)}.button-primary:focus-visible,.button-primary:hover{opacity:.86}.button-secondary:focus-visible,.button-secondary:hover{background:var(--paper-deep)}.button-primary:focus-visible,.button-secondary:focus-visible{outline:2px solid rgba(46,90,75,.28);outline-offset:2px}.button-primary:disabled,.button-secondary:disabled{cursor:not-allowed;opacity:.38}.flow-shell{width:min(100%,54rem);min-height:100svh;margin-inline:auto;padding:0 var(--gutter) clamp(3rem,7vw,5rem)}.flow-header{padding-top:clamp(1.25rem,4vw,2.25rem)}.flow-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--ink-faint);font-family:Georgia,Times New Roman,serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}.flow-brand{color:var(--ink);font-family:var(--serif);font-size:.82rem;letter-spacing:.08em;text-decoration:none;text-transform:none}.flow-progress{width:100%;height:2px;margin-top:1rem;overflow:hidden;background:var(--rule-soft)}.flow-progress span{height:100%;display:block;background:var(--accent);transition:width .3s ease}.flow-panel{padding-top:clamp(1.5rem,4vw,2.5rem)}.flow-title{max-width:43rem;font-size:clamp(2rem,5vw,3.5rem);line-height:1.35}.flow-lead{max-width:40rem;margin-top:1.25rem;color:var(--ink-muted);font-size:.84rem;line-height:1.9}.question-category>p:last-child{max-width:42rem;color:var(--ink-muted);font-family:var(--serif);font-size:.82rem;line-height:1.8}.question-theme{display:grid;grid-gap:.35rem;gap:.35rem;margin-top:1.75rem;padding:.9rem 1rem;border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--ink-muted);font-size:.72rem;line-height:1.7}.question-theme strong{color:var(--accent);letter-spacing:.05em}.question-title{display:grid;grid-gap:1.2rem;gap:1.2rem;margin-top:clamp(1.25rem,3vw,2rem);font-size:clamp(1.55rem,3.8vw,2.35rem);line-height:1.55}.question-title span{color:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:.72rem;font-weight:400;letter-spacing:.18em}.question-guide{max-width:45rem;margin-top:1.4rem;color:var(--ink-muted);font-size:.86rem;line-height:1.9}.question-example{margin-top:1.25rem;padding:1rem 1.1rem;border:1px solid var(--rule-soft);background:var(--paper-deep);color:var(--ink-muted);font-size:.76rem;line-height:1.8}.answer-field{position:relative;display:block;margin-top:2rem}.answer-field textarea{width:100%;min-height:13rem;display:block;resize:vertical;padding:1.2rem 1.2rem 2.4rem;border:1px solid var(--rule);border-radius:0;background:rgba(255,255,255,.72);color:var(--ink);font-size:.95rem;line-height:1.8}.answer-field textarea:focus{border-color:var(--accent);outline:2px solid rgba(46,90,75,.16);outline-offset:1px}.answer-field textarea::placeholder{color:var(--ink-faint)}.answer-count{position:absolute;right:.85rem;bottom:.75rem;color:var(--ink-faint);font-size:.65rem;letter-spacing:.05em}.answer-save-feedback{display:flex;min-height:1.5rem;align-items:flex-start;justify-content:space-between;gap:1rem;margin-top:.65rem;color:var(--ink-faint);font-size:.68rem;line-height:1.7}.answer-save-hint{max-width:34rem}.answer-save-error,.answer-save-status{flex:0 0 auto;text-align:right}.answer-save-status{color:var(--accent)}.answer-save-error{max-width:23rem;color:#714529}.flow-error{margin-top:1.2rem;padding:.9rem 1rem;border-left:2px solid #9b5d35;background:rgba(155,93,53,.07);color:#714529;font-size:.78rem;line-height:1.8}.flow-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem}.flow-text-link{display:block;margin-top:1.2rem;color:var(--ink-muted);font-size:.74rem;text-align:center;text-underline-offset:.25rem}.demographics-form{display:grid;grid-gap:1.25rem;gap:1.25rem;margin-top:2.5rem}.demographics-form label{display:grid;grid-gap:.55rem;gap:.55rem;color:var(--ink-muted);font-size:.75rem;letter-spacing:.06em}.demographics-form select{width:100%;min-height:3.25rem;padding:.7rem 2.4rem .7rem .85rem;border:1px solid var(--rule);border-radius:0;background:white;color:var(--ink)}.demographics-form select:focus{border-color:var(--accent);outline:2px solid rgba(46,90,75,.16)}.flow-status,.result-status{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--gutter);text-align:center}.flow-status{gap:1rem;color:var(--ink-muted);font-size:.82rem}.flow-spinner{width:1.6rem;height:1.6rem;border:1px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.result-status{background:radial-gradient(circle at 50% 36%,var(--accent-soft),transparent 30rem),var(--paper)}.result-status h1{max-width:46rem;font-size:clamp(2rem,5.5vw,3.8rem);line-height:1.35}.result-status-message{max-width:39rem;margin-top:1.3rem;color:var(--ink-muted);font-size:.88rem;line-height:1.9}.result-status-note{margin-top:1rem;color:var(--ink-faint);font-size:.7rem;letter-spacing:.04em}.result-notice-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:2rem}.analysis-mark{position:relative;width:6rem;height:6rem;margin-bottom:2.25rem}.analysis-mark span{position:absolute;width:3.3rem;height:3.3rem;border:1px solid rgba(46,90,75,.38);border-radius:50%;animation:breathe 2.4s ease-in-out infinite alternate}.analysis-mark span:first-child{top:0;left:1.35rem}.analysis-mark span:nth-child(2){bottom:0;left:.25rem;animation-delay:-.8s}.analysis-mark span:nth-child(3){right:.25rem;bottom:0;animation-delay:-1.6s}.history-shell,.result-shell{width:min(100%,var(--content));margin-inline:auto;padding:0 var(--gutter) clamp(4rem,8vw,7rem)}.history-header,.result-hero{padding-top:clamp(1.25rem,4vw,2.25rem)}.result-nav{display:flex;justify-content:space-between;gap:1rem;margin-bottom:clamp(3rem,8vw,6rem);padding-bottom:1rem;border-bottom:1px solid var(--rule);color:var(--ink-muted);font-size:.7rem;letter-spacing:.08em}.result-nav a{text-decoration:none}.result-hero{text-align:center}.history-header h1,.result-hero h1{font-size:clamp(2.25rem,5.2vw,4.5rem)}.result-type{display:inline-block;margin-top:1.5rem;padding:.3rem .65rem;border:1px solid var(--rule);color:var(--ink-faint);font-size:.65rem;letter-spacing:.1em}.saikaku-area{max-width:54rem;margin:clamp(3rem,7vw,5rem) auto 0;padding:clamp(2rem,5vw,3.5rem);border:1px solid rgba(46,90,75,.3);background:rgba(255,255,255,.58);text-align:center}.saikaku-area h2{margin:0;font-family:var(--serif);font-size:clamp(1.75rem,4.5vw,3.1rem);font-weight:400;line-height:1.45}.saikaku-area>p:not(.eyebrow){max-width:42rem;margin:1.4rem auto 0;color:var(--ink-muted);font-size:.86rem;line-height:1.95}.product-list,.result-alternatives{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;margin-top:1.6rem}.product-list span,.result-alternatives span{padding:.42rem .7rem;background:var(--accent-soft);color:var(--accent);font-size:.7rem;line-height:1.5}.score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1px;gap:1px;margin-top:clamp(3rem,7vw,5rem);background:var(--rule);border:1px solid var(--rule)}.score-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:1.2rem;gap:1.2rem;padding:clamp(1.25rem,3vw,2rem);background:var(--paper)}.axis-group header p,.score-card p{color:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:.64rem;letter-spacing:.14em}.axis-group h2,.score-card h2{margin:.35rem 0 0;font-family:var(--serif);font-size:1.35rem;font-weight:400}.score-card div>span{display:block;margin-top:.4rem;color:var(--ink-faint);font-size:.68rem}.score-card>strong{align-self:start;font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:400}.score-card>strong small{color:var(--ink-faint);font-size:.6rem}.axis-track,.score-track{height:3px;overflow:hidden;background:var(--rule-soft)}.score-track{grid-column:1/-1}.axis-track span,.score-track span{height:100%;display:block}.axis-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:clamp(1rem,2.5vw,2rem);gap:clamp(1rem,2.5vw,2rem);margin-top:clamp(3rem,7vw,5rem)}.axis-group{min-width:0}.axis-group>header{padding:.4rem 0 1rem;border-top:2px solid;border-bottom:1px solid var(--rule)}.axis-list{display:grid;grid-gap:.8rem;gap:.8rem;padding-top:.8rem}.axis-item{padding:1rem;border:1px solid var(--rule-soft);background:rgba(255,255,255,.58)}.axis-item-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.axis-item h3{margin:0;font-family:var(--serif);font-size:1rem;font-weight:400;line-height:1.5}.axis-item-title strong{color:var(--ink-muted);font-family:Georgia,Times New Roman,serif;font-size:.75rem}.axis-track{margin-top:.65rem}.axis-item>p{margin-top:.8rem;color:var(--ink-muted);font-size:.72rem;line-height:1.75}.axis-item ul{margin:.75rem 0 0;padding-left:1.1rem;color:var(--ink-faint);font-size:.68rem;line-height:1.7}.result-copy-section{max-width:50rem;margin:clamp(3rem,7vw,5rem) auto 0;padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--rule)}.history-empty h2,.result-copy-section h2{margin:0;font-family:var(--serif);font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:400;line-height:1.5}.result-copy-section>p:not(.eyebrow){margin-top:1rem;color:var(--ink-muted);font-size:.88rem;line-height:1.95}.product-list{justify-content:flex-start}.result-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:clamp(3.5rem,8vw,6rem);padding-top:2.5rem;border-top:1px solid var(--rule)}.history-header{max-width:56rem}.history-header>p:not(.eyebrow){max-width:38rem;margin-top:1.25rem;color:var(--ink-muted);font-size:.84rem;line-height:1.9}.history-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.history-list{margin-top:clamp(3rem,7vw,5rem);border-top:1px solid var(--rule)}.history-item{min-height:7rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;grid-gap:clamp(.8rem,2.5vw,2rem);gap:clamp(.8rem,2.5vw,2rem);padding:1.25rem 0;border-bottom:1px solid var(--rule);text-decoration:none;transition:background-color .16s ease,padding .16s ease}.history-item:focus-visible,.history-item:hover{padding-inline:1rem;background:var(--paper-deep);outline:none}.history-arrow,.history-number{color:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:.72rem;letter-spacing:.1em}.history-main{min-width:0;display:grid;grid-gap:.4rem;gap:.4rem}.history-main strong{font-family:var(--serif);font-size:1.2rem;font-weight:400}.history-main small{color:var(--ink-faint);font-size:.68rem;letter-spacing:.04em}.history-status{padding:.28rem .55rem;border:1px solid rgba(46,90,75,.3);background:var(--accent-soft);color:var(--accent);font-size:.62rem;letter-spacing:.08em}.history-status[data-status=failed]{border-color:rgba(155,93,53,.25);background:rgba(155,93,53,.07);color:#714529}.history-empty{margin-top:clamp(3rem,7vw,5rem);padding:clamp(2rem,5vw,4rem);border:1px solid var(--rule);text-align:center}.history-empty>p:not(.eyebrow){margin:1rem auto 0;color:var(--ink-muted);font-size:.82rem;line-height:1.8}.history-empty .button-primary{margin-top:1.8rem}@keyframes spin{to{transform:rotate(1turn)}}@keyframes breathe{0%{opacity:.4;transform:scale(.92)}to{opacity:1;transform:scale(1.08)}}@media (max-width:48rem){.axis-grid,.score-grid{grid-template-columns:1fr}.score-card{min-height:9rem}.axis-grid{gap:2.5rem}}@media (max-width:34rem){.flow-shell,.history-shell,.result-shell{padding-inline:1.25rem}.flow-actions,.history-actions{align-items:stretch;flex-direction:column-reverse}.flow-actions .button-primary,.flow-actions .button-secondary,.history-actions .button-primary,.history-actions .button-secondary{width:100%}.history-item{grid-template-columns:auto minmax(0,1fr) auto}.history-status{grid-column:2;justify-self:start}.history-arrow{grid-column:3;grid-row:1/span 2}}@media (prefers-reduced-motion:reduce){.button-primary,.button-secondary,.flow-progress span,.history-item{transition:none}.analysis-mark span,.flow-spinner{animation:none}}