:root { --pink:#e66f83; --deep:#714b56; --teal:#4f8f8a; --teal-pale:#e8f3f1; --pale:#fff0f2; --ink:#34383a; --muted:#6d7172; --line:#dedfdd; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:#424647; font-family:"Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif; line-break:strict; }
button, a { font:inherit; }
button { cursor:pointer; }
.site-header { height:88px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid #ddd; position:relative; z-index:5; }
.brand { color:#fff; background:var(--pink); text-decoration:none; display:flex; align-items:center; gap:0; padding:13px 20px; border:0; border-radius:11px; font-weight:700; font-size:16px; letter-spacing:.02em; box-shadow:0 4px 12px rgba(190,75,98,.12); }
.brand-mark { display:block; width:auto; height:auto; padding:0; color:#fff; background:none; border:0; border-radius:0; font-size:19px; line-height:1.25; font-weight:800; letter-spacing:.08em; }
.header-label { font-size:15px; font-weight:700; color:#555; border-left:3px solid var(--pink); padding:4px 0 4px 12px; }
.hero { min-height:calc(100vh - 88px); display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); align-items:center; padding:7vw 9vw 8vw; position:relative; overflow:hidden; background:radial-gradient(circle at 78% 38%,#fff 0 9%,transparent 30%),linear-gradient(145deg,#fffdfd 0 54%,#fff1f6 54%); }
.hero-copy { max-width:700px; position:relative; z-index:2; }
.kicker,.eyebrow,.side-title { color:#555; font-size:14px; font-weight:800; letter-spacing:.08em; }
.hero h1 { font-size:clamp(44px,5.2vw,66px); line-height:1.18; margin:18px 0 26px; letter-spacing:-.035em; font-weight:700; }
.hero h1 em { color:var(--pink); font-style:normal; }
.lead { max-width:570px; font-size:clamp(16px,1.5vw,19px); line-height:2; color:#6f5d65; }
.start-button { border:0; margin-top:24px; padding:20px 28px; min-width:320px; display:inline-flex; justify-content:space-between; border-radius:999px; background:var(--pink); color:white; font-weight:800; box-shadow:0 14px 32px rgba(233,93,152,.2); transition:.2s; }
.start-button:hover { transform:translateY(-2px); background:#dc4c8a; box-shadow:0 18px 36px rgba(233,93,152,.26); }
.caution { margin-top:16px; color:#8b7d84; font-size:12px; }
.hero-visual { height:460px; position:relative; }
.card { position:absolute; display:grid; place-items:center; background:white; box-shadow:0 20px 55px rgba(163,63,108,.12); font-weight:800; }
.card-a { width:210px; height:250px; left:5%; top:8%; color:var(--pink); border-radius:82px 36px 66px 36px; font-size:105px; transform:rotate(-5deg); }
.card-b { width:180px; height:120px; right:3%; bottom:12%; color:var(--deep); background:#fbd9e7; border-radius:38px 64px 38px 58px; font-size:34px; transform:rotate(5deg); }
.path-line { position:absolute; left:44%; top:48%; width:42%; height:3px; background:#f2a6c5; transform:rotate(30deg); transform-origin:left; }
.path-line:after { content:""; position:absolute; right:-1px; top:-6px; border-left:12px solid var(--pink); border-top:7px solid transparent; border-bottom:7px solid transparent; }
.hero-orb { position:absolute; border-radius:50%; border:1px solid #f6cfde; }
.orb-one { width:230px;height:230px;right:-80px;top:-60px;background:rgba(255,255,255,.28); }.orb-two { width:100px;height:100px;left:52%;bottom:8%;background:#fbdde9;opacity:.72; }
.simulation { min-height:calc(100vh - 88px); padding:34px 5vw 80px; max-width:1500px; margin:auto; }
.intro-panel { min-height:0;margin-bottom:44px;background:#fff;border:1px solid #ddd;border-left:8px solid var(--pink);border-radius:14px;position:relative;overflow:hidden; }
.intro-panel:after { display:none; }
.intro-copy { padding:40px clamp(28px,6vw,82px);position:relative;z-index:1; }
.intro-chip { display:inline-block;padding:0 0 7px;border-bottom:2px solid var(--pink);color:#555;font-size:14px;font-weight:800; }
.intro-copy h1 { margin:18px 0 16px;font-size:clamp(36px,4.5vw,61px);line-height:1.25;letter-spacing:-.015em;font-weight:650; }
.intro-copy h1 em { color:var(--pink);font-style:normal; }
.intro-copy p { max-width:880px;margin:0;color:#4d4d4d;line-height:1.9;font-size:18px;font-weight:500;text-wrap:pretty; }
.intro-copy small { display:block;margin-top:12px;color:#786e71;font-size:14px;line-height:1.7; }
.sim-top { display:grid; grid-template-columns:140px 1fr 55px; gap:24px; align-items:center; margin-bottom:48px; }
.text-button,.back-button { color:#565d5e; border:0; background:transparent; padding:8px 0; font-size:15px;font-weight:700; }
.progress-wrap { height:6px; background:#e5e5e5;border-radius:999px;overflow:hidden; }.progress-wrap span { display:block;height:100%;background:var(--pink);border-radius:999px;transition:width .45s ease; }.progress-number { color:var(--pink);font-size:14px;font-weight:900; }
.sim-grid { display:grid; grid-template-columns:330px minmax(0,1fr); gap:clamp(40px,6vw,100px); }
.history-panel { border-right:1px solid #ccc; padding-right:34px; min-height:520px; }
.empty-history { color:#746d70;font-size:15px;line-height:1.8;margin-top:26px; }
.history-panel ol { padding:0;margin:28px 0;list-style:none; }
.history-panel li { display:grid;grid-template-columns:30px 1fr;gap:12px;padding:0 0 24px;position:relative; }
.history-panel li:not(:last-child):before { content:"";position:absolute;left:11px;top:28px;bottom:5px;width:1px;background:#ded8d4; }
.history-panel li>span { width:27px;height:27px;display:grid;place-items:center;border:1px solid var(--pink);background:#fff;color:var(--pink);font-size:11px;font-weight:900; }
.history-panel small { display:block;color:#71696c;font-size:13px;line-height:1.55; }.history-panel strong { display:block;margin-top:6px;color:var(--deep);font-size:16px; }
.question-area { max-width:860px; }
.question-card,.result-card { animation:rise .45s ease both; }
@keyframes rise { from { opacity:0;transform:translateY(16px); } to { opacity:1;transform:none; } }
.question-card h2,.result-card h2 { color:#45494a;font-size:clamp(32px,3.5vw,49px);line-height:1.55;margin:14px 0 18px;padding-top:18px;border-top:3px solid var(--pink);letter-spacing:0;font-weight:600;text-wrap:pretty; }
.note { color:#5c6263;line-height:1.9;margin:0 0 34px;max-width:760px;font-size:17px;font-weight:500; }
.options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:36px; }.options.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.options button { min-height:90px;display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border:1px solid #c9c9c9;border-left:5px solid var(--pink);background:#fff;color:#45494a;font-size:20px;font-weight:600;border-radius:10px;transition:.15s;text-align:left; }
.options button:nth-child(even) { border-color:#bbb;border-left-color:var(--pink);background:#fff;color:#333; }
.options button b,.options button:nth-child(even) b { display:block;background:none;color:var(--pink);font-size:22px; }.options button:hover,.options button:focus-visible,.options button:nth-child(even):hover,.options button:nth-child(even):focus-visible { outline:none;background:#fff4f6;border-color:var(--pink);transform:none;box-shadow:none; }
.back-button { margin-top:26px;text-decoration:underline;text-underline-offset:4px; }
.result-card { padding:42px clamp(24px,5vw,64px);background:#fff;border:1px solid #ccc;border-radius:14px; }
.result-card.not-eligible { border-top-color:#9a8890; }.result-icon { width:64px;height:64px;display:grid;place-items:center;background:var(--pink);color:#fff;font-size:32px;font-weight:900;margin:24px 0; }.not-eligible .result-icon { background:#777;color:#fff; }
.result-label { color:var(--deep);font-size:17px;font-weight:800;margin:0; }.not-eligible .result-label { color:#74646b; }.result-card h2 { color:var(--pink);margin:8px 0; }.not-eligible h2 { color:var(--ink); }.qualification { display:inline-block;background:var(--pale);color:var(--deep);font-size:16px;font-weight:800;padding:9px 16px;border-radius:8px; }.result-copy { color:#5b6162;line-height:1.95;max-width:720px;font-size:17px;margin:24px 0; }
.result-actions { display:flex;gap:12px;flex-wrap:wrap;margin-top:32px; }.result-actions a,.result-actions button { padding:15px 22px;border-radius:8px;font-weight:800;text-decoration:none;border:1px solid var(--pink); }.result-actions a { background:var(--pink);color:white; }.result-actions button { background:white;color:var(--pink); }
.reference-box { margin:42px 0 0;padding:26px 28px;border:1px solid #b9cfcc;border-left:5px solid var(--teal);background:#f7faf9;border-radius:12px;color:#455e5c;font-size:16px;line-height:1.9; }.reference-box strong { color:#285753;font-size:19px; }.reference-copy { max-width:760px;margin:8px 0 14px;text-wrap:pretty; }.reference-box a { display:inline-flex;align-items:center;color:#276f69;font-size:16px;font-weight:800;text-underline-offset:4px; }
.contact-footer { display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:6px solid var(--pink); }
.contact-footer>div { min-height:300px;padding:54px 36px 50px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center; }
.contact-block { border-right:1px solid #ddd; }
.briefing-block { background:#f5f9f8; }
.footer-kicker { margin:0 0 10px!important;color:var(--pink)!important;font-size:13px!important;font-weight:900;letter-spacing:.16em; }
.briefing-block .footer-kicker { color:#43827c!important; }
.contact-footer h2 { margin:0;color:#51494c;font-size:clamp(21px,2.2vw,27px);font-weight:800;letter-spacing:.02em; }
.contact-tel { display:inline-block;margin:8px 0 10px;color:#e5847f;text-decoration:none;font-size:clamp(42px,6vw,66px);line-height:1.15;font-weight:900;letter-spacing:.02em; }
.contact-footer p { margin:0;color:#4f464a;font-size:clamp(14px,1.6vw,18px); }
.briefing-block h2 { font-size:clamp(30px,3vw,40px);color:#326b66; }
.briefing-lead { margin:16px 0 20px!important;font-size:18px!important;font-weight:700; }
.briefing-links { width:min(100%,540px);display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.briefing-links a { min-height:64px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #43827c;border-radius:9px;background:#fff;color:#326b66;text-align:left;text-decoration:none;font-size:16px;font-weight:800;line-height:1.45;white-space:nowrap;transition:.15s; }
.briefing-links a:hover,.briefing-links a:focus-visible { background:#e8f3f1;outline:2px solid #43827c;outline-offset:2px; }.briefing-links b { font-size:20px; }
footer { padding:24px 5vw;background:#3d4445;color:#f2f2f2;text-align:center;font-size:14px;line-height:1.8; }
footer p { margin:0; }
@media(max-width:850px){.site-header{height:78px;padding:0 14px}.brand{font-size:12px;gap:9px;padding:7px 10px 7px 7px}.brand-mark{width:47px;height:34px;font-size:14px}.header-label{display:none}.simulation{padding:18px 16px 60px}.intro-panel{min-height:0;margin-bottom:28px}.intro-copy{padding:28px 24px}.intro-copy h1{font-size:39px}.intro-copy p{font-size:16px}.intro-copy small{font-size:13px}.intro-break{display:none}.sim-top{grid-template-columns:94px 1fr 38px;gap:12px;margin-bottom:32px}.sim-grid{display:block}.history-panel{display:none}.question-card h2,.result-card h2{font-size:31px}.note{font-size:16px}.options,.options.three{grid-template-columns:1fr}.options button{min-height:78px;font-size:19px}.result-card{padding:30px 22px}.result-copy{font-size:16px}.reference-box{margin:34px 0 0;padding:22px;font-size:16px}.reference-box strong{font-size:18px}.reference-box a{display:inline-flex;margin-top:4px}.contact-footer{grid-template-columns:1fr}.contact-footer>div{min-height:250px;padding:42px 18px}.contact-block{border-right:0;border-bottom:1px solid #ddd}.contact-footer h2{font-size:21px}.briefing-block h2{font-size:31px}.briefing-links{grid-template-columns:1fr}.contact-tel{font-size:42px}.contact-footer p{font-size:16px}footer{padding:22px 20px;font-size:13px}}
@media(max-width:850px){.brand{gap:0;padding:10px 13px;border-radius:9px}.brand-mark{width:auto;height:auto;padding:0;font-size:14px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
