/* PhysRepair motion: independent video loops and section animations. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:90px}
body{overflow-x:clip}
.nav{position:fixed;inset:0 0 auto;height:76px;z-index:80;transition:background .35s,border-color .35s,box-shadow .35s,color .35s}
body.at-hero .nav{background:linear-gradient(180deg,rgba(8,12,19,.76),rgba(8,12,19,0));border-color:transparent;box-shadow:none;color:#fff;backdrop-filter:none}
body.at-hero .nav a,body.at-hero .theme-toggle{color:#e7e9f1}
body.at-hero .nav .brand-dot{color:#82d8df}
.nav nav a{position:relative;transition:color .2s}
.nav nav a::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-ease)}
.nav nav a.active::after,.nav nav a:hover::after{transform:scaleX(1)}
.reading-progress{position:fixed;top:75px;left:0;right:0;height:2px;z-index:90;pointer-events:none}
.reading-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#b9a0ff,#70dfca);transform:scaleX(0);transform-origin:left;will-change:transform}
.hero.hero-immersive{position:relative;isolation:isolate;min-height:100svh;padding:132px 0 118px;display:flex;align-items:center;overflow:hidden;background:#0b1019;color:#f6f5fc;text-align:center}
.hero-wall,.hero-shade,.hero-texture{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero-wall{overflow:hidden;background:#111923}
.hero-video-grid{position:absolute;left:50%;top:50%;width:max(100vw,calc(var(--wall-height,110svh) * 16 / 9));height:max(56.25vw,var(--wall-height,110svh));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));transform:translate(-50%,-50%) translateY(var(--hero-shift,0px)) scale(1.025);filter:saturate(.78);will-change:transform;opacity:.95}
.hero-tile{min-width:0;min-height:0;position:relative;overflow:hidden;background:#10131c}
.hero-tile-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.hero-shade{z-index:0;background:radial-gradient(ellipse at 50% 47%,rgba(7,11,19,.85) 0%,rgba(7,11,19,.65) 28%,rgba(7,11,19,.28) 74%),linear-gradient(180deg,rgba(6,10,17,.24),rgba(6,10,17,.12) 50%,rgba(6,10,17,.88) 100%)}
.hero-texture{z-index:0;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.21' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-main{position:relative;z-index:2;max-width:1120px;transform:translate3d(0,var(--text-shift,0px),0);opacity:var(--hero-opacity,1);will-change:transform,opacity}
.hero-immersive .eyebrow{font-size:11px;letter-spacing:3px;color:#b8adcf;margin:0 0 24px;display:inline-flex;align-items:center;gap:11px}
.hero-immersive .status-dot{background:#24b8c8;box-shadow:0 0 18px #24b8c870;animation:soft-beacon 3s ease-in-out infinite}
.hero-immersive h1{margin:0;line-height:1.04}
.hero-immersive .gradient{display:block;font-size:clamp(72px,9.5vw,142px);letter-spacing:-7px;font-weight:750;color:transparent;background:linear-gradient(115deg,#e7dcff 15%,#ba9af2 46%,#69d9df 90%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 4px 24px #0003);line-height:1.06}
.hero-immersive .paper-title{display:block;max-width:920px;margin:25px auto 0;font-size:clamp(20px,2.15vw,30px);line-height:1.45;letter-spacing:-.5px;font-weight:500;color:#f6f5fc}
.hero-immersive .hero-tagline{font-size:20px;font-weight:400;letter-spacing:-.3px;margin:24px 0 0;color:#f6f5fc}
.hero-tagline em{color:#b2a3e3;font-style:normal}
.hero-immersive .hero-actions{justify-content:center;gap:12px;margin:30px 0 0}
.hero-immersive .button{min-height:46px;border-radius:8px;font-size:13px;transition:transform .3s var(--motion-ease),background .3s,box-shadow .3s;backdrop-filter:blur(12px)}
.hero-immersive .button.primary{background:#e8e0fb;color:#171525;border:1px solid #e8e0fb;box-shadow:0 4px 24px #0002}
.hero-immersive .button.ghost{background:#ffffff07;border:1px solid #ffffff2b;color:#dedbe9}
.hero-immersive .button:hover{transform:translateY(-3px);box-shadow:0 8px 30px #0003}
.hero-immersive .button.primary:hover{background:#f0eafb}
.hero-authors{max-width:920px;margin:24px auto 0;text-align:center}
.hero-authors summary{display:inline-flex;align-items:center;gap:8px;list-style:none;font-size:12px;letter-spacing:.1px;color:#b8adcf;cursor:pointer;padding:8px 14px;border-radius:5px;transition:background .25s}
.hero-authors summary::-webkit-details-marker{display:none}
.hero-authors summary::after{content:"⌄";display:inline-block;font-size:15px;transition:transform .25s}
.hero-authors[open] summary::after{transform:rotate(180deg)}
.hero-authors summary:hover{background:#ffffff0d}
.hero-authors-panel{border:1px solid #ffffff20;background:rgba(10,17,27,.82);backdrop-filter:blur(18px);border-radius:12px;padding:18px 24px;margin-top:12px;animation:panel-open .4s var(--motion-ease)}
.hero-authors-panel .author-list{margin:0 auto;font-size:14px;color:#d9d4e8;column-gap:16px}
.hero-authors-panel .author-list sup,.hero-authors-panel .affiliations sup{color:#bba9e2}
.hero-authors-panel .affiliations{font-size:11px;line-height:1.6;color:#a9a6bb;margin-top:12px}
.hero-bottom{position:absolute;z-index:3;left:0;right:0;bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#e0e4eb}
.hero-bottom .wall-caption{font-size:9px;letter-spacing:1.7px;color:#c3ccd9}
.background-toggle{background:#08101a55;border:1px solid #ffffff2f;border-radius:99px;color:#e8edf3;display:inline-flex;align-items:center;gap:8px;padding:9px 13px;font-size:10px;cursor:pointer;backdrop-filter:blur(10px)}
.background-toggle:hover{background:#ffffff18}
.scroll-cue{position:absolute;left:50%;bottom:1px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:1.7px;text-transform:uppercase;color:#dde7ed}
.scroll-cue span{width:1px;height:26px;background:#ffffff36;overflow:hidden;position:relative}
.scroll-cue span::after{content:"";position:absolute;inset:0;background:#c6f1e3;animation:scroll-line 2s var(--motion-ease) infinite}
.hero-main>*{animation:hero-enter .95s var(--motion-ease) both}
.hero-main .eyebrow{animation-delay:.08s}
.hero-main h1{animation-delay:.16s}
.hero-main .hero-tagline{animation-delay:.27s}
.hero-main .hero-actions{animation-delay:.36s}
.hero-main .hero-authors{animation-delay:.44s}
.featured-section{padding-top:84px;padding-bottom:82px;position:relative}
.featured-section .section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.featured-section h2{font-size:34px;letter-spacing:-1px;margin:10px 0 0}
.featured-section .section-heading>p{font-size:13px;color:var(--muted);margin:0 0 5px}
.featured-section .hero-demo{margin-top:30px;max-width:none;box-shadow:0 20px 70px #191a3510;transform-origin:center}
.featured-section .demo-top{padding:16px 20px}
.featured-section .demo-footer{padding:13px 20px}
.featured-section .demo-description{color:var(--muted)}
.section{scroll-margin-top:76px}
.motion-ready .reveal{opacity:0;transform:translate3d(0,30px,0);filter:blur(3px);transition:opacity .85s var(--motion-ease),transform .85s var(--motion-ease),filter .85s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}
.kinetic-heading{position:relative;width:fit-content;max-width:100%;isolation:isolate}
.kinetic-heading .heading-word-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:3px;margin-bottom:-3px}
.kinetic-heading .heading-word{display:inline-block;transform-origin:left bottom}
.motion-ready .kinetic-heading .heading-word{opacity:0;transform:translate3d(0,115%,0) rotate(3deg);filter:blur(3px)}
.kinetic-heading.is-title-active .heading-word{animation:chapter-word-in .95s var(--motion-ease) both;animation-delay:calc(var(--word-index,0) * 70ms)}
.kinetic-heading::after{content:"";position:absolute;left:0;bottom:-10px;width:clamp(66px,36%,168px);height:2px;border-radius:2px;background:linear-gradient(90deg,#a68bdb,#75cfd7);transform:scaleX(0);transform-origin:left;opacity:0}
.kinetic-heading.is-title-active::after{animation:chapter-line-in .95s var(--motion-ease) .25s both}
.abstract-heading .kinetic-heading{margin-left:auto;margin-right:auto}
.abstract-heading .kinetic-heading::after{left:50%;transform-origin:center}
.abstract-heading .kinetic-heading.is-title-active::after{animation-name:chapter-center-line-in}
.paper-figure{position:relative;transition:box-shadow .4s,transform .4s var(--motion-ease)}
.paper-figure:hover{transform:translateY(-3px);box-shadow:0 16px 50px #31245c0b}
.zoom-figure img{transition:transform .55s var(--motion-ease)}
.zoom-figure:hover img{transform:scale(1.008)}
.zoom-figure>span{transition:opacity .25s,color .25s}
.steps{position:relative;isolation:isolate;padding-top:26px;margin-top:34px;gap:28px}
.steps::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.steps::after{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:linear-gradient(90deg,transparent 0%,#a992e2 28%,#81cfc0 58%,transparent 83%);background-size:220% 100%;opacity:0;transform-origin:left;pointer-events:none}
.steps.is-running::after{opacity:.8;animation:workflow-pass 5s linear infinite}
.steps.is-running article>span{animation:step-focus 6.8s ease-in-out infinite;animation-delay:calc(var(--step-index,0) * 1.7s)}
.steps article{position:relative;padding-top:8px}
.steps article>span{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line);background:var(--surface);margin-bottom:7px;transition:background .35s,border-color .35s,color .35s}
.steps article:hover>span{background:#e8f4ef;border-color:#9dcdbf;color:#295a4a}
.steps h3{transition:color .25s}
.steps article:hover h3{color:var(--purple)}
.case-thumb{transition:transform .3s var(--motion-ease),border-color .3s,box-shadow .3s}
.case-thumb:hover{transform:translateY(-4px);box-shadow:0 8px 22px #24213d12}
.case-thumb img{transition:transform .4s var(--motion-ease)}
.case-thumb:hover img{transform:scale(1.035)}
.comparison-shell{transition:box-shadow .5s,border-color .4s}
.comparison-shell:focus-within{box-shadow:0 0 0 3px #8a78b914}
.method-grid figure.motion-card{animation:card-enter .55s var(--motion-ease) both;animation-delay:calc(var(--card-index,0) * 35ms);transition:box-shadow .3s,border-color .3s}
.method-grid figure:hover{box-shadow:0 7px 24px #1c234010;border-color:#bcb1d2}
.method-grid figure.ours-frame:hover{border-color:#75bbad;box-shadow:0 7px 24px #386b6014}
.metric-strip>div{position:relative}
.metric-strip strong{font-variant-numeric:tabular-nums}
.table-wrap{transition:box-shadow .4s}
.table-wrap:hover{box-shadow:0 12px 35px #1c23400b}
tbody tr{transition:background .2s}
tbody tr:hover{background:#a995cf0b}
.citation-box{transition:border-color .35s,box-shadow .35s}
.citation-box:hover{border-color:#c6badf;box-shadow:0 10px 35px #1c234008}
.back-to-top{position:fixed;right:25px;bottom:25px;z-index:60;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:0 4px 20px #0000000d;display:grid;place-items:center;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .3s,transform .3s}
.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{transform:translateY(-3px)}
:focus-visible{outline:2px solid #79b9a7;outline-offset:5px}
@keyframes hero-enter{from{opacity:0;transform:translateY(21px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes panel-open{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@keyframes card-enter{from{opacity:.1;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@keyframes workflow-pass{from{background-position:170% 0}to{background-position:-50% 0}}
@keyframes scroll-line{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
@keyframes soft-beacon{0%,100%{box-shadow:0 0 0 0 #24b8c800}50%{box-shadow:0 0 14px 3px #24b8c835}}
@keyframes chapter-word-in{0%{opacity:0;transform:translate3d(0,115%,0) rotate(3deg);filter:blur(3px);color:var(--purple)}45%{color:var(--purple)}100%{opacity:1;transform:translate3d(0,0,0) rotate(0);filter:blur(0);color:var(--ink)}}
@keyframes chapter-line-in{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:.9}}
@keyframes chapter-center-line-in{from{transform:translateX(-50%) scaleX(0);opacity:0}to{transform:translateX(-50%) scaleX(1);opacity:.9}}
@keyframes step-focus{0%,17%{background:#e7e1f7;border-color:#ae98dc;color:#5c4888;box-shadow:0 0 0 5px #a990db12}24%,100%{background:var(--surface);border-color:var(--line);color:var(--purple);box-shadow:none}}
@media(min-width:1600px){.hero.hero-immersive{min-height:960px}.hero-main{max-width:1240px}}
@media(max-width:900px){
  .nav{height:68px}.reading-progress{top:67px}
  .hero.hero-immersive{padding-top:122px;padding-bottom:135px;min-height:100svh}
  .hero-immersive .gradient{font-size:100px;letter-spacing:-5px}
  .hero-immersive .paper-title{max-width:690px;font-size:25px}
  .hero-main{width:calc(100% - 52px)}
  .hero-bottom .wall-caption{max-width:180px;line-height:1.7;font-size:8px}
  .scroll-cue{font-size:8px}
  .hero-bottom{bottom:24px}
  .featured-section{padding-top:62px;padding-bottom:62px}
}
@media(max-width:600px){
  .nav{height:62px}.reading-progress{top:61px}
  .hero.hero-immersive{padding-top:114px;padding-bottom:155px;min-height:100svh}
  .hero-main{width:calc(100% - 38px)}
  .hero-immersive .gradient{font-size:72px;letter-spacing:-4px}
  .hero-immersive .paper-title{font-size:19px;line-height:1.5;letter-spacing:-.3px;margin-top:21px}
  .hero-immersive .eyebrow{font-size:8px;letter-spacing:1.5px;gap:7px;margin-bottom:21px}
  .hero-immersive .hero-tagline{font-size:17px;margin-top:22px}
  .hero-immersive .hero-actions{margin-top:25px;gap:9px}
  .hero-immersive .button{font-size:11px;min-height:42px;padding:9px 12px}
  .hero-authors{margin-top:16px}.hero-authors summary{font-size:11px}
  .hero-authors-panel{padding:17px 12px}.hero-authors-panel .author-list{font-size:12px;column-gap:12px}
  .hero-authors-panel .affiliations{font-size:10px;gap:7px 11px}
  .hero-bottom{bottom:19px;align-items:flex-end;gap:8px}
  .hero-bottom .wall-caption{max-width:165px;font-size:7px;letter-spacing:1.1px}
  .background-toggle{font-size:9px;gap:5px;padding:8px 9px}
  .scroll-cue{bottom:57px;font-size:7px;gap:8px}
  .scroll-cue span{height:21px}
  .featured-section{padding-top:46px;padding-bottom:45px}
  .featured-section .section-heading{display:block}
  .featured-section h2{font-size:28px}
  .featured-section .section-heading>p{margin-top:12px;font-size:12px}
  .featured-section .demo-footer{padding:12px}
  .featured-section .demo-top{padding:13px}
  .steps{gap:20px;padding-top:20px}
  .back-to-top{right:16px;bottom:16px;width:35px;height:35px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-main>*,.hero-immersive .status-dot,.scroll-cue span::after,.steps::after,.steps article>span,.method-grid figure.motion-card{animation:none!important}
  .hero-wall video,.hero-main{transform:none!important;will-change:auto}
  .hero-video-grid{transform:translate(-50%,-50%) scale(1.025)!important;will-change:auto}
  .motion-ready .reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  .motion-ready .kinetic-heading .heading-word{opacity:1!important;transform:none!important;filter:none!important;animation:none!important;color:var(--ink)}
  .kinetic-heading::after{animation:none!important;transform:scaleX(1);opacity:.6}
  .abstract-heading .kinetic-heading::after{transform:translateX(-50%) scaleX(1)}
  .case-thumb:hover,.zoom-figure:hover img,.paper-figure:hover{transform:none}
}
