.cv-page{padding:120px 0 80px;min-height:100vh}.cv-wrap{width:100%;max-width:720px}.cv-back{display:inline-block;font-size:.85rem;font-weight:500;color:var(--ink-muted);text-decoration:none;margin-bottom:32px;letter-spacing:.04em;transition:color .2s}.cv-back:hover{color:var(--accent)}.cv-kana{font-size:.85rem;color:var(--ink-light);letter-spacing:.16em;margin-bottom:6px}.cv-header h1{font-family:var(--font-display);font-size:clamp(2rem,4vw,2.75rem);font-weight:500;color:var(--ink);margin-bottom:8px;letter-spacing:.08em}.cv-title{font-size:1rem;font-weight:600;color:var(--accent);margin-bottom:12px;letter-spacing:.04em}.cv-contact{font-size:.9rem;color:var(--ink-muted);margin-bottom:48px}.cv-section{margin-bottom:40px}.cv-section h2{font-family:var(--font-display);font-size:1.35rem;font-weight:500;color:var(--ink);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border);letter-spacing:.04em}.cv-section p,.cv-section ul{font-size:.95rem;color:var(--ink-muted);line-height:1.8;margin-bottom:12px}.cv-section ul{padding-left:20px;margin-bottom:24px}.cv-section li{margin-bottom:8px}.cv-skills{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;list-style:none;padding-left:0}.cv-skills li{position:relative;padding-left:16px}.cv-skills li:before{content:"—";position:absolute;left:0;color:var(--accent-line)}.cv-job{margin-bottom:32px}.cv-job-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:4px}.cv-job-header strong{font-size:1.05rem;color:var(--ink)}.cv-date{font-size:.85rem;color:var(--ink-light)}.cv-role{font-size:.9rem;color:var(--accent);font-weight:600;margin-bottom:12px}.cv-tech{font-size:.9rem;line-height:1.8}.cv-muted{font-size:.88rem;color:var(--ink-light);margin-bottom:20px}.cv-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:48px;padding-top:32px;border-top:1px solid var(--border)}.cv-cta .btn,.cv-cta .btn-outline{display:inline-flex;align-items:center;justify-content:center;padding:14px 26px;font-size:.88rem;font-weight:600;font-family:inherit;letter-spacing:.04em;border-radius:var(--radius);cursor:pointer;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .15s}.cv-cta .btn{background:var(--ink);color:var(--bg-elevated);border:1px solid var(--ink)}.cv-cta .btn:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.cv-cta .btn-outline{background:transparent;color:var(--ink);border:1px solid var(--border)}.cv-cta .btn-outline:hover{border-color:var(--ink);transform:translateY(-1px)}@media (max-width:480px){.cv-cta{flex-direction:column;align-items:stretch}.cv-cta .btn,.cv-cta .btn-outline{width:100%;text-align:center}}