.menu-toggle{display:none;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);color:var(--text);font:800 23px/1 var(--sans);cursor:pointer}.project-media{position:relative;overflow:hidden;margin:-8px -8px 26px;aspect-ratio:16/9;border:1px solid var(--line);border-radius:14px;background:#081421}.project-media img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .35s ease}.project-card:hover .project-media img{transform:scale(1.015)}.project-media-placeholder{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:26px;background:radial-gradient(circle at 80% 12%,rgba(94,234,212,.22),transparent 35%),linear-gradient(135deg,#0b2633,#091527 65%)}.project-media-placeholder::before{content:"DATA → MODEL → RISK → UI";position:absolute;top:24px;right:24px;color:rgba(125,211,252,.45);font:700 11px/1.4 var(--mono);letter-spacing:.08em}.project-media-placeholder span{color:var(--accent);font:800 11px/1.3 var(--mono);letter-spacing:.12em}.project-media-placeholder strong{margin-top:8px;font-size:clamp(22px,4vw,38px);letter-spacing:-.04em}.project-media-placeholder small{margin-top:7px;color:var(--muted)}.project-primary{padding:8px 12px;border-radius:10px;background:rgba(94,234,212,.12);border:1px solid rgba(94,234,212,.28);text-decoration:none!important}.case-page{min-height:100vh}.case-nav{padding:22px 0}.case-nav a{color:var(--accent);font-weight:800;text-decoration:none}.case-hero{padding:64px 0 54px;border-bottom:1px solid var(--line)}.case-hero h1{max-width:900px;margin:0;font-size:clamp(42px,7vw,78px);line-height:1;letter-spacing:-.055em}.case-hero p{max-width:780px;margin:24px 0 0;color:var(--muted);font-size:18px}.case-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.case-content{padding:70px 0 100px}.case-section{display:grid;grid-template-columns:180px minmax(0,1fr);gap:34px;padding:38px 0;border-bottom:1px solid var(--line)}.case-section>h2{margin:0;color:var(--accent);font:800 12px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase}.case-section h3{margin:0 0 12px;font-size:clamp(24px,3vw,36px);letter-spacing:-.035em}.case-section p,.case-section li{color:var(--muted)}.case-section ul{margin:14px 0 0;padding-left:20px}.flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:22px}.flow span{padding:9px 11px;border:1px solid rgba(125,211,252,.22);border-radius:9px;background:rgba(125,211,252,.06);font:700 12px/1.3 var(--mono);color:var(--text)}.flow b{color:var(--faint)}.case-shot{margin-top:24px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--bg-soft)}.case-shot img{width:100%;max-height:680px;object-fit:cover;object-position:top}.case-shot figcaption{padding:12px 15px;border-top:1px solid var(--line);color:var(--faint);font:600 12px/1.6 var(--sans)}.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.case-card{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.case-card strong{display:block;margin-bottom:7px;color:var(--accent-2)}
/* P2 lite */
.project-card,.focus-card,.skill-groups article,.case-card,.timeline-item{transition:transform .24s ease,border-color .24s ease,background .24s ease,box-shadow .24s ease}.project-primary{transition:transform .2s ease,background .2s ease,border-color .2s ease}.project-primary:hover{transform:translateY(-1px);background:rgba(94,234,212,.17);border-color:rgba(94,234,212,.45)}body.reveal-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}body.reveal-ready .reveal.is-visible{opacity:1;transform:none}@media(hover:hover){.project-card:hover,.focus-card:hover,.skill-groups article:hover,.case-card:hover{transform:translateY(-4px);border-color:rgba(94,234,212,.28);box-shadow:0 18px 44px rgba(2,8,23,.24)}.timeline-item:hover{transform:translateX(4px)}}
/* P3 metrics, architecture, language/theme controls */
.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.metric{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.metric strong{display:block;color:var(--accent);font:800 clamp(24px,4vw,38px)/1 var(--mono)}.metric span{display:block;margin-top:8px;color:var(--muted);font-size:13px}.architecture{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:stretch;margin-top:22px}.architecture .node{position:relative;padding:18px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-align:center}.architecture .node strong{display:block;color:var(--accent-2);font-size:13px}.architecture .node small{display:block;margin-top:6px;color:var(--muted);line-height:1.45}.architecture .node:not(:last-child)::after{content:"→";position:absolute;right:-10px;top:50%;transform:translate(50%,-50%);z-index:2;color:var(--accent);font-weight:900}.toolbar{display:flex;gap:8px;align-items:center}.toolbar a,.theme-toggle{min-height:40px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:700 12px/1 var(--sans);text-decoration:none;cursor:pointer}.evidence-link{color:var(--accent);text-decoration:none;font-size:12px;font-weight:800}.evidence-link:hover{text-decoration:underline}.contact-actions{display:flex;gap:10px;flex-wrap:wrap}.contact-note{margin-top:10px;color:var(--faint);font-size:13px}.case-meta-note{margin-top:14px;color:var(--faint);font-size:12px}
html[data-theme="light"]{color-scheme:light;--bg:#f5f8fc;--bg-soft:#eef4fa;--surface:rgba(255,255,255,.82);--surface-strong:#fff;--text:#102033;--muted:#52657a;--faint:#718298;--line:rgba(15,35,60,.14);--accent:#0f766e;--accent-strong:#0d9488;--accent-2:#0369a1;--shadow:0 24px 70px rgba(30,64,100,.14)}html[data-theme="light"] body{background:radial-gradient(circle at 14% 0%,rgba(13,148,136,.09),transparent 30rem),radial-gradient(circle at 92% 16%,rgba(3,105,161,.08),transparent 28rem),linear-gradient(180deg,#fff 0%,var(--bg) 45%,#edf3f8 100%)}html[data-theme="light"] body::before{background-image:linear-gradient(rgba(15,35,60,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(15,35,60,.025) 1px,transparent 1px)}html[data-theme="light"] .site-header{background:rgba(250,253,255,.82)}html[data-theme="light"] .nav{background:rgba(250,253,255,.98)}
@media(max-width:900px){.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.nav{display:none;position:absolute;top:calc(100% + 1px);left:20px;right:20px;padding:10px;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:16px;background:rgba(6,16,29,.98);box-shadow:var(--shadow)}.nav.is-open{display:flex}.nav a{min-height:44px;display:flex!important;align-items:center;padding:10px 13px}.nav .nav-cta{margin-left:0}.case-section{grid-template-columns:1fr;gap:12px}.case-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.architecture{grid-template-columns:1fr 1fr}.architecture .node::after{display:none}}@media(max-width:620px){.project-media{margin:-12px -12px 22px}.project-media-placeholder{padding:18px}.project-media-placeholder::before{top:16px;right:16px}.case-hero{padding-top:42px}.case-content{padding-top:40px}.metrics-grid,.architecture{grid-template-columns:1fr}.toolbar{gap:5px}.toolbar a,.theme-toggle{padding:7px 9px}}@media(prefers-reduced-motion:reduce){body.reveal-ready .reveal{opacity:1;transform:none;transition:none}.project-card,.focus-card,.skill-groups article,.case-card,.timeline-item,.project-primary{transition:none}}
