/* The mathematical atelier: paper, ink, cobalt and a little orange. */
:root,.reading{--bg:#f7f5ef;--panel:#fffefa;--text:#252b36;--muted:#596373;--lime:#244ed5;--line:#27395c26;color-scheme:light}
body{background:var(--bg);isolation:isolate;overflow-x:clip}
body:before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(#4868a509 1px,transparent 1px),linear-gradient(90deg,#4868a509 1px,transparent 1px);background-size:56px 56px}
#flowCanvas{z-index:0;opacity:1;display:block!important}
.page{position:relative;z-index:auto}.site-footer{position:relative;z-index:1}
.page{width:min(1360px,90vw)}
.site-header,.reading .site-header{background:#f7f5efd9;box-shadow:0 3px 20px #38517b05;border-bottom:1px solid var(--line);padding:18px 5vw;gap:22px}
.brand{font-size:32px}.brand i{color:#ec623f}.nav{gap:22px}.nav a{font-size:13px;color:var(--muted)!important;transition:color .25s}.nav a:hover,.nav a[aria-current=page]{color:var(--lime)!important}
.nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .25s}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}
.language-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:30px;flex-shrink:0;font:11px var(--mono)}.language-switch a{padding:5px 8px;border-radius:20px}.language-switch a[aria-current]{background:var(--text);color:white}.language-switch a:not([aria-current]):hover{background:#e7eafa}
.music-toggle{background:#fffefa}.hero{min-height:760px;padding:85px 0 95px;gap:60px}.hero h1{font-size:clamp(74px,8.6vw,132px);line-height:1.16;letter-spacing:-.055em;margin:32px 0;color:var(--text)}
.hero h1 .outline{color:var(--lime);-webkit-text-stroke:0;display:inline-block}.hero h1 .dot{color:#ec623f}.hero-top{color:var(--muted);letter-spacing:1px}.live-dot{background:#ec623f;box-shadow:0 0 0 5px #ec623f13;animation:beacon 3s ease-in-out infinite}.hero .intro{color:#475264;background:#f7f5efd9;display:table;padding:8px 14px 8px 0;border-radius:8px}.hero-art{min-height:510px;display:grid;place-items:center}
.hero-art:before{content:'f(t) = (cos t, sin 2t)';position:absolute;top:-30px;right:0;font:italic 14px Georgia,serif;color:var(--lime);border-bottom:1px solid var(--line);padding-bottom:8px}
.hero-art:after{content:'x × y → ∞';position:absolute;left:-10px;bottom:35px;font:italic 22px Georgia,serif;color:#ec623f;transform:rotate(-12deg)}
.orbit{width:460px;height:460px;border-color:#244ed538;transform:translate(-50%,-50%) rotate(-20deg) scaleY(.8);animation:orbital 18s ease-in-out infinite}.orbit:before{content:'';position:absolute;inset:36px -30px;border:1px dashed #244ed54d;border-radius:50%;transform:rotate(60deg)}.orbit:after{content:'r = curiosity²';font:italic 16px Georgia,serif;letter-spacing:0;top:15px;left:15%;color:var(--lime);background:var(--bg)}
.phone{width:220px;background:#303947;border-color:#8a94a5;box-shadow:24px 35px 65px #22366b25;animation:levitate 7s ease-in-out infinite}
.floating-label{background:#fffef8e8;border:1px solid #27395c36;border-radius:3px;box-shadow:8px 8px 0 #294edd0c;color:var(--text);padding:16px 22px;z-index:2}.floating-label.one{top:10%;left:-15px;animation:label-float 9s ease-in-out infinite}.floating-label.two{bottom:12%;right:-15px;animation:label-float 8s ease-in-out infinite reverse}.floating-label strong{font-weight:500}.hero-art .note{color:var(--muted);bottom:-15px;font-size:10px}
.button{background:#fffefa;transition:transform .25s,box-shadow .25s,background .25s}.button.primary,.music-play{background:var(--lime);color:#fff;border-color:var(--lime)}.button:hover{transform:translateY(-4px);box-shadow:0 8px 0 #244ed515}.button span{transition:transform .25s}.button:hover span{transform:translate(3px,-3px)}
.ticker{background:#f7f5efd9;padding:24px 0;letter-spacing:1.5px}.ticker b{color:#ec623f;display:inline-block;animation:spin 18s linear infinite}.section{padding:110px 0}.section-head h2,.section h2{font-weight:500;letter-spacing:-1.5px;line-height:1.5}.eyebrow{color:var(--lime);letter-spacing:1.5px}.section-head .eyebrow:before{content:'+';color:#ec623f;margin-right:8px}
.featured-grid{gap:34px}.product-tile{border-radius:4px;border:1px solid #27395c30;box-shadow:0 5px 0 #244ed508;transition:transform .45s,box-shadow .45s}.product-tile:hover{transform:translateY(-9px);box-shadow:0 16px 35px #244ed518}.tile-stage{background:#e4eadf;background-image:linear-gradient(130deg,#ffffff44,transparent);border-bottom:1px solid var(--line);height:340px}.tile-stage.sand{background-color:#eee3d2}.tile-stage.blue{background-color:#dce5f2}.tile-stage.rose{background-color:#f1dedc}.tile-stage img{transition:transform .6s cubic-bezier(.2,.8,.2,1)}.product-tile:hover .tile-stage img{transform:translateY(-12px) rotate(-3deg)}.product-tile:hover .tile-stage img+img{transform:translateY(18px) rotate(3deg)}.tile-info{background:#fffefa}.tile-info .arrow{color:#ec623f;transition:transform .3s}.product-tile:hover .arrow{transform:rotate(45deg)}
.featured-grid .product-tile:nth-child(even){margin-top:55px}.featured-grid .product-tile:nth-child(odd){margin-bottom:55px}.app-grid{gap:28px}.app-grid .tile-stage{height:300px}.app-grid .tile-info{min-height:175px}
.world-grid{gap:34px}.photo-tile{border-radius:4px}.photo-caption{color:#fff}.photo-caption .eyebrow{color:#e1eaff}.research-tile{background:#e8edffdd;color:var(--text);border-radius:4px;position:relative;overflow:hidden}.research-tile:before{content:'';position:absolute;width:280px;height:280px;right:-100px;top:-120px;border:1px solid #244ed54d;border-radius:50%;box-shadow:0 0 0 15px #244ed509,0 0 0 30px #244ed507,0 0 0 45px #244ed505;animation:orbital 20s ease-in-out infinite}.research-tile .equation{color:var(--lime);font:italic 56px Georgia,serif;opacity:.7}.research-tile h3{line-height:1.6}.closing{background:#f7f5efbd}.closing h2{line-height:1.4}.closing h2 span{color:var(--lime)}
.page-hero{position:relative;padding:100px 0 70px;min-height:365px}.page-hero:after{content:'∂ / ∂t';position:absolute;top:60px;right:10px;font:italic clamp(45px,9vw,140px) Georgia,serif;color:#244ed51c;transform:rotate(-12deg);pointer-events:none}.page-hero h1{position:relative;z-index:1;line-height:1.4;font-size:clamp(46px,6.4vw,92px);letter-spacing:-.035em;max-width:1100px}.page-hero .lead{background:#f7f5efc9;padding:8px 0;max-width:680px;position:relative}.page-hero .meta{color:var(--muted)}
.project-row,.contact-card{background:#fffefaec;border-radius:4px;transition:transform .35s,box-shadow .35s}.project-row:hover,.contact-card:hover{transform:translateY(-4px);box-shadow:8px 8px 0 #244ed50d}.project-row .symbol{color:#ec623f}.filter,.gallery-filter{background:#fffefa}.filter[aria-pressed=true],.gallery-filter.is-active{background:var(--lime);color:white}.research-row{background:#f7f5efc9;transition:padding .3s,background .3s}.research-row:hover{background:#fffefa;padding-inline:15px}.research-row .index{font:italic 30px Georgia,serif;color:#ec623f}.about-grid p{background:#f7f5efcc}.about-grid blockquote{font-weight:500;color:var(--lime)}.fact-list{background:#f7f5efcc}.site-footer{background:#f7f5efe6}
.gallery-card-copy{color:white}.gallery-card{border-radius:3px}.lightbox-backdrop{background:#f7f5effa}.lightbox-loader{background:#fffefa;color:var(--text);border:1px solid var(--line)}.lightbox-close,.lightbox-nav{background:#fffefa;color:var(--text);border-color:var(--line)}.lightbox-dialog figcaption{color:var(--text)}
.music-panel,.reading .music-panel{--text:#252b36;--muted:#596373;--line:#27395c26;--lime:#244ed5;background:#fffefa;color:var(--text);color-scheme:light;border:1px solid #27395c40;box-shadow:12px 15px 0 #244ed512,0 25px 65px #26335226;border-radius:8px}.turntable{background:linear-gradient(140deg,#dbe0e5,#b8c1c9);border:1px solid #9da7b1}.vinyl:before{background:#ec623f}.vinyl:after{color:white}.music-play{color:white}.music-controls label{font-size:12px}
.reading .article-head{max-width:1050px}.reading .article-layout{background:#fffefaed;padding:40px 25px 100px;gap:45px;border-top:1px solid var(--line)}.reading .article-head{background:#f7f5efee}.paper{color:#252b36}.source-language{font-size:12px;color:var(--muted);max-width:850px}.toc{background:#fffefa}.toc .eyebrow{color:var(--lime)}.reading .research-note{background:#eaf0fb}.versions{background:#fffefa}.paper .equation-block{background:#edf1f8}.paper tr:first-child{background:#edf1f8}.detail-top .lead{background:#f7f5efce}.description{background:#fffefaeb;padding:30px;border-left:2px solid var(--lime)}
.reveal{transition:opacity .85s,transform .85s}.js-ready .reveal:not(.is-visible){transform:translateY(40px)}
@keyframes levitate{0%,100%{transform:translateY(0) rotate(7deg)}50%{transform:translateY(-15px) rotate(3deg)}}
@keyframes label-float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(10px) rotate(-1deg)}}
@keyframes orbital{0%,100%{transform:translate(-50%,-50%) rotate(-20deg) scaleY(.8)}50%{transform:translate(-50%,-50%) rotate(15deg) scaleY(.9)}}
@keyframes beacon{50%{box-shadow:0 0 0 9px #ec623f05}}
@media(min-width:1500px){.hero{min-height:820px}.hero-art .phone{width:250px}}
@media(max-width:1100px){.site-header{gap:14px}.nav{gap:12px}.nav a{font-size:12px}.music-label{display:none}.hero{gap:25px}.hero h1{font-size:90px}.floating-label.one{left:-5px}.floating-label.two{right:-5px}}
@media(max-width:760px){.site-header{gap:9px;padding:14px 5vw}.brand{font-size:27px}.menu-toggle{margin-left:auto}.language-switch{font-size:10px}.language-switch a{padding:4px 7px}.nav{gap:15px 20px;order:5}.music-toggle{padding:6px}.page{width:90vw}.hero{padding:55px 0 65px;gap:55px;min-height:0}.hero h1{font-size:clamp(65px,17vw,100px);line-height:1.25;letter-spacing:-.06em}.hero-top{font-size:9px;gap:10px}.hero-art{min-height:440px;height:440px;padding:10px}.hero-art .phone{width:190px}.hero-art .orbit{width:300px;height:350px}.hero-art:before{top:-20px;font-size:12px}.hero-art:after{bottom:0;left:0}.floating-label{padding:12px;font-size:9px}.floating-label strong{font-size:12px}.floating-label.one{top:8%;left:0}.floating-label.two{right:0;bottom:10%}.hero-art .note{bottom:-30px;font-size:8px;left:0}.ticker{font-size:9px;gap:16px}.section{padding:65px 0}.featured-grid{gap:25px}.featured-grid .product-tile:nth-child(n){margin:0}.tile-stage{height:310px}.app-grid .tile-stage{height:340px}.app-grid .tile-info{min-height:0}.page-hero{padding:60px 0 40px;min-height:0}.page-hero h1{font-size:clamp(35px,9vw,54px);line-height:1.5}.page-hero:after{font-size:65px;top:15px}.page-hero .meta{flex-wrap:wrap;gap:12px}.closing h2{font-size:48px;line-height:1.5;letter-spacing:-2px}.section-head h2{font-size:32px;line-height:1.6}.reading .article-layout{padding:30px 12px 65px}.research-row:hover{padding-inline:0}.music-panel{top:76px;right:5vw;width:90vw;max-width:360px}.description{padding:20px}.lightbox-dialog figcaption{gap:15px}}
@media(prefers-reduced-motion:reduce){#flowCanvas{display:block!important;opacity:.55}.phone,.floating-label,.orbit{animation:none!important}.phone{transform:rotate(5deg)}}
@media(max-width:760px){.hero-art{height:480px;min-height:480px;overflow:clip}.hero-art:before{top:0}.hero-art .note{bottom:0}.hero-art:after{bottom:30px}}
.hero-art{overflow:clip}.hero-art:before{top:0}.hero-art .note{bottom:0}.floating-label.one{left:0}.floating-label.two{right:0}
