:root { --ink:#0A0A0A; --ink-soft:#555; --muted:#777; --paper:#fff; --beige:#F5F3EC; --border:1.5px solid var(--ink); --ai-yellow:#FFD60A; --ai-yellow-soft:#fff7bd; --danger:#a9382b; --danger-bg:#fff0ed; }
* { box-sizing:border-box; }
html { background:var(--paper); overflow-x:hidden; }
body { min-width:0; margin:0; color:var(--ink); background:var(--paper); font-family:"Noto Sans JP",system-ui,sans-serif; overflow-x:hidden; }
button,a { font:inherit; } button { cursor:pointer; }
.diagnosis-app { width:min(100%,720px); min-height:calc(100svh - 101px); margin:0 auto; padding:24px 20px 52px; }
.screen { display:none; position:relative; min-width:0; animation:screen-in .35s ease both; } .screen.is-active { display:block; } @keyframes screen-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.eyebrow { margin:0 0 10px; color:var(--ink-soft); font-size:11px; font-weight:800; letter-spacing:.13em; } .title-rule { display:flex; align-items:center; gap:10px; margin-bottom:20px; } .title-rule span { width:54px; height:6px; background:var(--ai-yellow); border:var(--border); } .title-rule b { font-size:11px; letter-spacing:.12em; }
h1,h2,h3,p { overflow-wrap:anywhere; } h1 { max-width:580px; margin:0; font-size:clamp(42px,12vw,68px); line-height:1.14; letter-spacing:-.055em; } h1 em { font-style:normal; background:linear-gradient(transparent 60%,var(--ai-yellow) 0); } h2 { margin:0; font-size:clamp(26px,7vw,38px); line-height:1.45; letter-spacing:-.035em; } .intro-lead { max-width:590px; margin:28px 0 20px; color:var(--ink-soft); font-size:15px; line-height:2; }
.exam-guide { max-width:590px; padding:16px; margin:0 0 24px; background:var(--beige); border:var(--border); } .exam-guide .guide-title { margin:0 0 10px; font-size:11px; font-weight:800; letter-spacing:.1em; } .exam-guide > p:last-child { margin:14px 0 0; color:var(--ink-soft); font-size:12px; line-height:1.85; }
.chips { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0; list-style:none; } .chips li { padding:7px 10px; background:var(--ai-yellow-soft); border:var(--border); border-radius:999px; font-size:12px; font-weight:700; white-space:nowrap; }
.cat { display:block; pointer-events:none; } .cat-intro { width:130px; max-width:30vw; margin:18px 0 -18px auto; transform:rotate(3deg); } .cat-result { width:130px; max-width:35vw; margin:18px 0 0 auto; transform:rotate(-3deg); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:54px; padding:13px 18px; border:var(--border); border-radius:0; color:var(--ink); font-weight:800; line-height:1.35; text-decoration:none; transition:transform .15s,box-shadow .15s,background .15s; } .button:hover { transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--ink); } .button:focus-visible,.option:focus-visible,.text-button:focus-visible,.review-toggle:focus-visible { outline:3px solid #4b8cf7; outline-offset:3px; } .button-primary { background:var(--ai-yellow); } .button-primary:disabled { color:#777; background:#e6e6e6; border-color:#aaa; opacity:1; } .button-outline { width:100%; background:var(--paper); } .button:disabled { cursor:not-allowed; opacity:.45; transform:none; box-shadow:none; } .button-arrow { width:9px; height:9px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); }
.screen-top,.question-meta,.timer-row { display:flex; align-items:center; justify-content:space-between; gap:12px; } .screen-top { margin-bottom:10px; } .screen-top .eyebrow { margin:0; } #profile-progress { color:var(--muted); font-size:12px; font-weight:700; } .profile-kicker { margin:0 0 10px; color:var(--ink-soft); font-size:13px; } .profile-options,.question-options { display:grid; gap:10px; margin-top:26px; } .option { width:100%; padding:15px 14px; color:var(--ink); background:var(--paper); border:var(--border); text-align:left; font-size:14px; font-weight:600; line-height:1.65; transition:background .15s,transform .15s,box-shadow .15s; } .option:hover:not(:disabled) { background:var(--ai-yellow-soft); transform:translate(-2px,-2px); box-shadow:3px 3px 0 var(--ink); } .option.is-selected { background:var(--ai-yellow); box-shadow:3px 3px 0 var(--ink); } .profile-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:28px; } .text-button { padding:8px 2px; color:var(--ink-soft); background:none; border:0; border-bottom:1px solid currentColor; font-size:13px; }
.question-header { position:sticky; z-index:3; top:0; margin:-24px -20px 0; padding:18px 20px 12px; background:rgba(255,255,255,.96); border-bottom:1px solid #eee; backdrop-filter:blur(6px); } .question-meta strong { font-size:14px; letter-spacing:.04em; } #live-score { color:var(--ink-soft); font-size:12px; font-weight:700; } .progress-track { height:8px; margin-top:12px; overflow:hidden; background:#eee; border:1px solid var(--ink); } #progress-bar { display:block; width:0; height:100%; background:var(--ai-yellow); transition:width .25s ease; } .timer-row { margin:22px 0 14px; color:var(--ink-soft); font-size:13px; font-weight:700; } .timer-wrap { width:44px; height:44px; padding:3px; border-radius:50%; background:conic-gradient(var(--ai-yellow) 360deg,#eee 0); } .timer-ring { display:flex; width:100%; height:100%; align-items:center; justify-content:center; border-radius:50%; background:var(--paper); } .timer-ring b { font-size:13px; } .timer-unit { margin-left:1px; font-size:9px; } .part-label,.category-label { display:inline-block; margin:0 0 10px; font-size:12px; font-weight:800; } .part-label { margin-right:6px; padding:5px 8px; color:var(--paper); background:var(--ink); } .category-label { padding:5px 8px; background:var(--ai-yellow-soft); border-left:4px solid var(--ai-yellow); }
.question-options .option { position:relative; padding-left:49px; } .question-options .option::before { content:attr(data-letter); position:absolute; top:50%; left:14px; display:grid; width:23px; height:23px; place-items:center; border:1px solid var(--ink); transform:translateY(-50%); font-size:11px; font-weight:800; } .question-options .option:disabled { cursor:default; } .question-options .option.is-chosen { background:var(--ai-yellow-soft); border-color:var(--ink); box-shadow:3px 3px 0 var(--ink); } .question-options .option.is-timeout { background:#eee; }
.answer-panel { margin-top:20px; } .answer-status { margin:0 0 12px; font-size:16px; font-weight:800; } .answer-status.is-answered { color:var(--ink); } .answer-status.is-timeout { color:var(--danger); } .explanation { padding:18px; background:var(--beige); border:var(--border); } .explanation h3 { margin:0 0 8px; font-size:15px; } .explanation-copy,.review-explanation { display:grid; gap:10px; } .explanation-unit { padding-top:10px; border-top:1px solid var(--ink-soft); } .explanation-unit:first-child { padding-top:0; border-top:0; } .explanation-unit b { display:block; margin-bottom:3px; font-size:12px; } .explanation-unit p { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.85; } #next-question { width:100%; margin-top:14px; }
.result-license { position:relative; margin-top:8px; padding:23px 20px 18px; background:var(--beige); border:var(--border); overflow:hidden; } .result-license::before,.result-license::after { position:absolute; color:var(--ink); font-family:monospace; font-size:34px; font-weight:800; line-height:1; } .result-license::before { top:6px; left:8px; content:"⌐"; } .result-license::after { right:8px; bottom:6px; content:"¬"; } .license-label { margin:0 0 18px; font-size:10px; font-weight:800; letter-spacing:.12em; } .result-rank { margin:0 0 4px; color:var(--ink-soft); font-size:14px; font-weight:800; letter-spacing:.08em; } .result-score { display:flex; align-items:baseline; gap:9px; margin:12px 0 0; } .result-score strong { font-size:clamp(64px,20vw,100px); line-height:1; letter-spacing:-.075em; } .result-score span { font-size:15px; font-weight:700; } .pass-message { margin:14px 0 0; padding:12px; background:var(--ai-yellow-soft); border-left:5px solid var(--ai-yellow); font-size:14px; font-weight:700; line-height:1.75; } .license-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 16px; margin-top:20px; padding-top:10px; border-top:1px solid var(--ink); font-family:monospace; font-size:11px; font-weight:800; letter-spacing:.04em; } .result-stats { margin:14px 0 0; color:var(--ink-soft); font-size:12px; font-weight:700; text-align:center; }
.risk-warning { margin-top:24px; padding:18px; color:var(--danger); background:var(--danger-bg); border:2px solid currentColor; } .risk-warning p { margin:0 0 6px; font-size:11px; font-weight:800; letter-spacing:.1em; } .risk-warning h3 { margin:0 0 10px; font-size:18px; } .risk-warning span { font-size:13px; line-height:1.8; }
.result-section { margin-top:32px; } .result-section h3 { margin:0 0 12px; font-size:18px; } .category-breakdown { display:grid; gap:8px; } .category-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; padding:12px; border:var(--border); } .category-row.is-priority { background:var(--ai-yellow-soft); box-shadow:3px 3px 0 var(--ink); } .category-row b { font-size:13px; } .category-row span { font-size:12px; font-weight:700; } .category-bar { grid-column:1/-1; height:6px; overflow:hidden; background:#e1e0dc; } .category-bar i { display:block; height:100%; background:var(--ai-yellow); }
.review-toggle { display:flex; width:100%; align-items:center; justify-content:space-between; margin-top:26px; padding:15px 0; color:var(--ink); background:var(--paper); border:0; border-top:var(--border); border-bottom:var(--border); text-align:left; font-weight:800; } .chevron { width:10px; height:10px; border-right:2px solid; border-bottom:2px solid; transform:rotate(45deg) translateY(-3px); transition:transform .2s; } .review-toggle[aria-expanded="true"] .chevron { transform:rotate(225deg) translate(-3px,0); } .review-list { display:grid; gap:12px; margin-top:16px; } .review-list[hidden] { display:none; } .review-item { padding:15px; border:var(--border); } .review-item h3 { margin:0 0 10px; font-size:14px; line-height:1.55; } .review-item p { margin:8px 0 0; color:var(--ink-soft); font-size:12px; line-height:1.75; } .review-item .review-answer { color:var(--ink); font-weight:800; }
.result-actions { margin:26px 0 18px; } .share-preview { padding:18px; border:var(--border); } .share-preview-kicker,.line-next-step-kicker { margin:0 0 10px; color:var(--ink-soft); font-size:11px; font-weight:800; letter-spacing:.1em; } .share-preview-card { padding:14px; background:var(--beige); border:1px solid var(--ink); } .share-preview-card span { display:block; margin-bottom:8px; color:var(--ink-soft); font-size:11px; } .share-preview-card strong { font-size:16px; } .share-preview-card p { margin:7px 0 0; color:var(--ink-soft); font-size:12px; line-height:1.7; } .share-preview label { display:block; margin:14px 0 6px; font-size:12px; font-weight:800; } .share-preview textarea { display:block; width:100%; padding:10px; resize:vertical; color:var(--ink); background:var(--paper); border:1px solid var(--ink); font:12px/1.65 "Noto Sans JP",system-ui,sans-serif; } .copy-button { margin-top:10px; font-weight:800; } .cta-section { margin:28px 0 18px; padding:22px 18px; background:var(--ink); color:var(--paper); } .cta-section p { margin:0; font-size:13px; line-height:1.8; } .cta-section h3 { margin:8px 0; font-size:20px; } .cta-section a { display:flex; width:fit-content; align-items:center; gap:10px; margin-top:16px; padding-bottom:3px; color:var(--paper); border-bottom:1px solid var(--ai-yellow); font-size:14px; font-weight:800; text-decoration:none; } .cta-section .small-link { margin-top:20px; color:#ddd; border-color:#777; font-size:12px; } .line-next-step { margin:28px 0 18px; padding:20px 18px; border:var(--border); } .line-next-step h3 { margin:0 0 14px; font-size:20px; line-height:1.55; } .line-next-step-body { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.9; transition:filter .3s ease; } .line-next-step:not(.is-unlocked) .line-next-step-body { filter:blur(6px); user-select:none; } .line-next-step .button { width:100%; margin-top:18px; } .line-next-step.is-unlocked #line-unlock-button,.line-next-step.is-unlocked .line-unlock-note { display:none; } .line-unlock-note { margin:7px 0 0; color:var(--muted); font-size:11px; text-align:center; } .line-guidance { margin:14px 0 0; color:var(--muted); font-size:10px; line-height:1.7; text-align:center; }
.site-footer { display:flex; width:min(100%,720px); align-items:flex-start; gap:13px; margin:0 auto; padding:20px; border-top:var(--border); } .site-footer img { width:28px; height:auto; } .site-footer p { margin:0; color:var(--muted); font-size:10px; line-height:1.7; }
@media (min-width:600px) { .diagnosis-app { padding:48px 42px 68px; } .question-header { margin:-48px -42px 0; padding:20px 42px 14px; } .cat-intro,.cat-result { width:160px; } .option { font-size:15px; } }
@media (max-width:374px) { .diagnosis-app { padding-inline:16px; } .question-header { margin-inline:-16px; padding-inline:16px; } h1 { font-size:40px; } .chips { gap:6px; } .chips li { padding:6px 8px; font-size:11px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
