@import url("halveth.css");
:root{--p-blue:#6ea8fe;--p-violet:#a78bfa;--p-cyan:#55d7d0;--p-warm:#ffd60a}
*{box-sizing:border-box}body{overflow-x:hidden;background:radial-gradient(circle at 82% 4%,rgba(85,215,208,.07),transparent 28rem),var(--bg)}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:4px}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:var(--accent);color:var(--accent-ink);padding:.7rem 1rem;font-weight:700}.skip-link:focus{top:1rem}
.portfolio-nav{position:sticky;top:0;z-index:50;background:rgba(10,10,11,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.portfolio-nav .nav-in{flex-wrap:nowrap}.portfolio-nav .nav-links{margin-left:auto;width:auto;order:initial}.portfolio-nav .nav-links a[aria-current=page]{color:var(--ink)}
.nav-back{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}.nav-back:hover{color:var(--ink)}
.portfolio-main{min-height:70vh}.portfolio-hero{padding:clamp(90px,12vw,160px) 0 90px;position:relative}.portfolio-hero:after{content:"";position:absolute;right:0;top:5rem;width:min(38vw,500px);height:1px;background:linear-gradient(90deg,transparent,var(--mint))}
.portfolio-hero h1{font-size:clamp(50px,8vw,108px);line-height:.91;letter-spacing:-.065em;max-width:9ch;margin:0 0 28px}.portfolio-hero h1 span{display:block;color:var(--muted);font-size:.42em;letter-spacing:-.035em;margin-bottom:18px}
.portfolio-hero .lead{font-size:clamp(20px,2.3vw,27px);max-width:34ch;color:var(--ink);line-height:1.45}.portfolio-hero .sublead{max-width:62ch;color:var(--muted)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero-note{margin-top:46px;padding-top:20px;border-top:1px solid var(--line);display:flex;gap:24px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--dim)}
.portfolio-section{padding:90px 0;border-top:1px solid var(--line)}.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,520px);gap:40px;align-items:end;margin-bottom:44px}.section-head h2{margin:0;font-size:clamp(34px,5vw,64px);line-height:1}.section-head p{margin:0;color:var(--muted)}
.focus-panel{display:grid;grid-template-columns:1.1fr .9fr;gap:1px;border:1px solid var(--line);background:var(--line);border-radius:18px;overflow:hidden}.focus-panel>div{background:var(--panel);padding:clamp(28px,5vw,56px)}.focus-panel h3{font-size:clamp(32px,4vw,52px);margin:12px 0}.focus-panel p{color:var(--muted)}
.signal-list{display:grid;gap:0}.signal{padding:18px 0;border-bottom:1px solid var(--line)}.signal:last-child{border:0}.signal b{display:block;font-family:var(--mono);font-size:12px;color:var(--mint);margin-bottom:4px}.signal span{font-size:15px;color:var(--muted)}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-card{display:flex;flex-direction:column;min-height:390px;padding:28px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,var(--panel),rgba(20,21,24,.58));transition:transform .18s,border-color .18s}.project-card:hover{transform:translateY(-3px);border-color:#454650}.project-card[hidden]{display:none}.card-top,.detail-status{display:flex;gap:12px;align-items:center;justify-content:space-between}.card-date{font-family:var(--mono);font-size:11px;color:var(--dim);text-align:right}.card-kicker{font-family:var(--mono);font-size:12px;color:var(--mint);margin:34px 0 10px}.project-card h3{font-size:28px;margin:0 0 12px}.project-card h3 a{color:var(--ink)}.project-card>p:not(.card-kicker){color:var(--muted);margin-top:0}.card-meta{margin-top:auto;padding:20px 0;display:grid;gap:4px;border-top:1px solid var(--line);font-size:12px;color:var(--dim)}
.p-badge{display:inline-flex;align-items:center;width:max-content;border:1px solid var(--line);border-radius:999px;padding:5px 10px;font:700 10px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase}.p-active{color:var(--p-cyan);border-color:rgba(85,215,208,.35)}.p-research{color:var(--p-violet);border-color:rgba(167,139,250,.35)}.p-released,.p-live{color:var(--green);border-color:rgba(62,201,138,.35)}.p-prototype,.p-review{color:var(--accent);border-color:rgba(255,214,10,.3)}.p-vision{color:var(--muted)}
.text-link{font:700 13px var(--mono);color:var(--ink)}.text-link:hover{color:var(--accent)}
.reference-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.reference-card{display:flex;flex-direction:column;min-height:210px;padding:24px;border:1px solid var(--line);border-radius:14px;color:var(--ink)}.reference-card:hover{border-color:var(--mint)}.reference-card strong{font-size:20px;margin:26px 0 8px}.reference-card>span:not(.reference-live){font-size:14px;color:var(--muted)}.reference-card b{font:12px var(--mono);margin-top:auto}.reference-live{font:10px var(--mono);text-transform:uppercase;color:var(--green)}.reference-live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:7px}
.timeline{position:relative;margin-left:10px}.timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:var(--line)}.timeline-item{position:relative;padding:0 0 40px 44px}.timeline-item:before{content:"";position:absolute;left:0;top:7px;width:11px;height:11px;border:2px solid var(--accent);background:var(--bg);border-radius:50%}.timeline-item time{font:12px var(--mono);color:var(--mint)}.timeline-item h3{font-size:22px;margin:7px 0 2px}.timeline-item .role{color:var(--ink);font-weight:600}.timeline-item p{color:var(--muted);max-width:62ch;margin:8px 0}
.method-grid{display:grid;grid-template-columns:repeat(4,1fr);counter-reset:method;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}.method-grid div{counter-increment:method;background:var(--panel);padding:26px;min-height:190px}.method-grid div:before{content:"0" counter(method);display:block;font:12px var(--mono);color:var(--accent);margin-bottom:30px}.method-grid h3{font-size:18px}.method-grid p{font-size:14px;color:var(--muted)}
.research-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.research-card{padding:32px;border:1px solid var(--line);border-radius:16px}.research-card h3{font-size:26px}.research-card p{color:var(--muted)}
.contact-box{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:clamp(30px,6vw,64px);border:1px solid var(--line);border-radius:18px;background:var(--panel)}.contact-box h2{font-size:clamp(34px,5vw,58px);margin:0 0 10px}.contact-box p{color:var(--muted);max-width:54ch}
.portfolio-footer{border-top:1px solid var(--line);padding:38px 0}.portfolio-footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.portfolio-footer p,.portfolio-footer a{font-size:13px;color:var(--dim)}.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 32px}.filter-bar button{appearance:none;border:1px solid var(--line);background:transparent;color:var(--muted);padding:9px 14px;border-radius:999px;font:12px var(--mono);cursor:pointer}.filter-bar button:hover,.filter-bar button[aria-pressed=true]{border-color:var(--accent);color:var(--ink);background:rgba(255,214,10,.07)}
.listing-hero{padding:90px 0 60px}.listing-hero h1{font-size:clamp(48px,7vw,86px);margin:0 0 18px}.listing-hero>p{max-width:62ch;color:var(--muted)}
.detail-main{max-width:1120px;margin:0 auto;padding:0 24px}.detail-hero{padding:78px 0 66px}.back-link{display:inline-block;font:12px var(--mono);color:var(--muted);margin-bottom:44px}.detail-status{justify-content:flex-start;margin-bottom:30px}.detail-status>span:last-child{font:12px var(--mono);color:var(--dim)}.detail-hero h1{font-size:clamp(48px,8vw,92px);line-height:.96;margin:0 0 24px}.detail-lead{font-size:clamp(20px,2.3vw,27px);max-width:40ch;color:var(--muted)}
.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:48px 0 0}.fact-grid>div{background:var(--panel);padding:18px}.fact-grid dt{font:10px var(--mono);text-transform:uppercase;color:var(--dim);margin-bottom:8px}.fact-grid dd{margin:0;font-size:14px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 0}.detail-grid>section{padding:34px;border:1px solid var(--line);border-radius:15px}.detail-grid h2{font-size:28px}.detail-grid p,.detail-grid li{color:var(--muted)}.detail-grid li+li{margin-top:9px}.boundary{border-left:2px solid var(--accent)!important}.detail-band{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:16px 0;padding:38px;background:var(--panel);border:1px solid var(--line);border-radius:15px}.tech-list,.proof-list{display:flex;gap:8px;flex-wrap:wrap}.tech-list span,.proof{padding:7px 10px;border:1px solid var(--line);border-radius:7px;font:11px var(--mono)}.proof{color:var(--ink)}.muted-proof{color:var(--dim)}.empty-state{padding:120px 0}
@media(max-width:900px){.reference-grid,.method-grid{grid-template-columns:repeat(2,1fr)}.focus-panel,.section-head{grid-template-columns:1fr}.fact-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.portfolio-nav .nav-in{flex-wrap:wrap}.portfolio-nav .nav-links{order:3;width:100%;margin-left:0}.portfolio-nav .nav-back{margin-left:auto}.project-grid,.research-split,.detail-grid,.detail-band,.contact-box{grid-template-columns:1fr}.portfolio-hero{padding-top:75px}.portfolio-section{padding:68px 0}.project-card{min-height:0}.contact-box .cta-row{margin-top:0}}
@media(max-width:480px){.reference-grid,.method-grid,.fact-grid{grid-template-columns:1fr}.portfolio-hero h1{font-size:50px}.wrap,.detail-main{padding-left:18px;padding-right:18px}.card-top{align-items:flex-start;flex-direction:column}.card-date{text-align:left}.detail-status{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
