/* Visual direction adapted from Ivan's supplied portfolio. */
:root{color-scheme:dark;--ink:#f1eeee;--muted:#a5a3aa;--line:#ffffff12;--blue:#ff5262;--paper:#141416;--accent:#ff5262;--radius:22px}body{background:#0c0c0f;color:var(--ink);font-family:Inter,Arial,sans-serif}#ambient,.bg-grid{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.bg-grid{background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:64px 64px}.header,main,footer{position:relative;z-index:1;max-width:1400px}.header{border:0;padding:28px 58px;background:transparent;min-height:96px}.monogram{background:transparent;border:1px solid #ff52625c;color:var(--accent);border-radius:12px}.brand{font-weight:500}.contact-link{border-color:#ff526265;color:var(--accent)}nav a:hover{color:var(--accent)}main{background:transparent}.hero{margin:15px 40px 0;padding:74px 48px 0;min-height:730px;text-align:center;border:1px solid #ffffff0b;border-radius:32px;background:radial-gradient(ellipse at 50% 25%,#e6394610,transparent 65%),#0c0c0fb8;box-shadow:0 20px 100px #0005;overflow:hidden}.eyebrow,.case-meta,.overline,.demo-top,.tags,.other-stack,.small-number,.case-navigation{font-family:'JetBrains Mono',Consolas,monospace}.hero .eyebrow{color:var(--accent);font-weight:400;letter-spacing:.19em}.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(46px,6.6vw,88px);font-weight:400;letter-spacing:-.045em;line-height:1.09;margin:30px 0}.hero h1 em{font-weight:400;color:#f2ebeb}.hero h1 span{color:var(--accent);text-shadow:0 0 55px #ff526245}.hero-bottom{display:flex;flex-direction:column;align-items:center;gap:24px}.hero-bottom p{font-size:17px;max-width:620px;font-weight:400;line-height:1.65}.primary{min-width:250px;background:transparent;border:1px solid #ff52627d;border-radius:7px;color:var(--accent);padding:13px 23px;font-size:14px;font-weight:400;transition:background .25s,box-shadow .25s,transform .25s}.primary:hover{background:#d93547;color:#fff;box-shadow:0 0 35px #e6394633;transform:translateY(-2px)}.stack-strip{border-top:1px solid var(--line);border-bottom:0;margin-top:40px;justify-content:center;gap:17px 34px;font-family:Consolas,monospace;font-size:12px;color:#99969e;padding:20px 0}.section{padding:95px 64px}h2,h3,h4{font-family:Georgia,'Times New Roman',serif;font-weight:400!important;letter-spacing:-.035em}h2{font-size:48px;line-height:1.15}h2 em{font-weight:400;color:var(--accent)}.journey{text-align:center;padding-bottom:35px}.journey h2{font-size:43px}.journey-track{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:45px;padding-top:115px}.journey-line{position:absolute;left:0;top:0;width:100%;height:140px;overflow:visible}.journey-line path{fill:none;stroke:#e6394655;stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-dasharray:8 6}.journey-track article{position:relative;text-align:left;padding:20px;border-top:1px solid #ff52624d;background:linear-gradient(#1b151960,transparent)}.journey-track article:nth-of-type(even){transform:translateY(-30px)}.journey-track span{font:12px/1.6 Consolas,monospace;color:var(--accent)}.journey-track h3{font-size:23px;line-height:1.18;margin:12px 0}.journey-track p{font-size:14px;line-height:1.65}.section-heading{padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:40px}.section-heading .eyebrow{color:#b9a0a5;font-weight:400}.case{position:relative;gap:60px;border:1px solid #ffffff10;border-radius:28px;padding:45px!important;margin-bottom:30px;background:linear-gradient(130deg,#1b191ed9,#101012f5);box-shadow:0 20px 80px #0003;min-width:0}.case:last-child{border:1px solid #ffffff10;margin-bottom:0}.case-copy{min-width:0}.case-meta{font-size:12px;font-weight:400;color:var(--accent);margin-bottom:20px}.case h3{font-size:43px;line-height:1.1;margin-bottom:21px}.case-copy>p{font-size:16px;line-height:1.7}.case ul{font-size:14px;line-height:1.8;margin:17px 0 22px;color:#aaa7b0}.case li::marker{color:#bb4956}.tags{gap:7px}.tags span{background:#e6394610;border:1px solid #e6394627;color:#ef8d98;border-radius:20px;padding:4px 10px;font-size:12px}.case details{margin-top:18px}.case summary{color:#cec5ca;font-size:14px;text-decoration-color:#ffffff30}.case details p{font-size:14px}.demo{border:1px solid #ffffff15;box-shadow:0 20px 50px #0003}.demo-top{font-size:11px;letter-spacing:.04em;color:#c9c2ca;border-color:#ffffff12!important;padding:16px 21px}.demo-label{font-family:Arial,sans-serif;font-size:12px;color:#b8a8af}.demo-footer{font-size:12px;color:#b5aeb8;border-color:#ffffff12!important;opacity:1;line-height:1.6}.coffee{background:#232025;color:#f1eeee}.coffee-content{padding:24px 28px 8px}.overline{font-size:11px;letter-spacing:.07em;color:#aa929d}.demo h4{font-size:33px}.coffee .muted{color:#aaa3ad}.coffee label{margin-top:20px;font-size:14px;color:#b9b0ba}select{border-color:#65515e;color:#f0ebef;background:#19171d}.stepper button{background:#3c303b;color:#ffc4cb}.stepper button:hover{background:#69404d}.total{border-color:#ffffff13}.total output{font-family:Georgia,serif;color:#fff}.demo-button{background:#d93a4d;color:#fff;border:1px solid #f8606e42;border-radius:8px}.demo-button:hover{background:#f0485c}.feedback{color:#c4b6c4}.event{background:linear-gradient(135deg,#3c1c2b,#211c2d);color:#fff}.event-content{padding:25px 28px 8px}.event-date strong{font-family:Georgia,serif;color:#ff8f9b}.event-category{color:#c3a1b2;opacity:1}.event h4{font-size:33px}.meter{background:#ffffff16}.meter div{background:#ff6575}.event .demo-button{background:#ec6678;color:#160b12}.event .demo-button:hover{background:#ff8b9a}.event .feedback{color:#c7b4c5}.messenger{background:#1e2028;border-color:#ffffff15}.chat-heading{background:#252731;border-color:#ffffff0f}.chat-heading strong{color:#ede9f0}.chat-heading small,.attachment small{color:#a2a0b1}.avatar{background:#45303d;color:#ff9ea9}.bubble{background:#2a2a36;border-color:#ffffff12;color:#ded9e4}.attachment{border-color:#ffffff12}.attachment>span{background:#44303f;color:#ff9ca9}.approval{color:#ddbc7e}.secondary{border-color:#665261;color:#e4cfdc}.secondary:hover{background:#3f303e}.reset{color:#b9a4b1}.architecture{background:#191a20;border:1px solid #ffffff13}.sources span{background:#272530;border-color:#ffffff17;color:#ded7e3}.connector{color:#bf586d}.arch-main{background:#352431;border-color:#a7476260;color:#ffa7b5}.arch-end{background:#25212b;border-color:#ffffff20;color:#ece5ef}.auction{background:linear-gradient(135deg,#211e2d,#18141c);color:#f5f0f3}.auction-content>p,.bid-note{color:#ad9faf}.auction output{font-family:Georgia,serif;color:#ff8797}.auction .demo-button{background:#e4596d;color:#fff}.auction .demo-button:hover{background:#f9798c}.other{margin:0 40px;border:1px solid #ffffff0b;background:#111114de;border-radius:28px}.other-grid article{border-color:#ffffff13}.other h3{font-size:26px;line-height:1.2}.other p{font-size:15px}.other-stack{color:#b48896;font-size:12px}.small-number{color:#d76b7d}.approach{gap:70px}.approach h2{font-size:42px}.skills h3{font-size:25px}.skills span{color:var(--accent)}.skills p{font-size:15px}.contact{margin:0 40px;background:radial-gradient(ellipse at 50% 100%,#9f243125,transparent 75%),#111114;border:1px solid #ff526228;border-radius:28px;text-align:center}.contact .eyebrow{color:#d58997}.contact h2{font-size:clamp(36px,5.5vw,76px);line-height:1.12}.contact h2 span{color:var(--accent);font-style:italic}.contact>a{max-width:580px;margin:auto;border-color:#ff526235;color:#edb4c0;font-family:Consolas,monospace;font-size:24px}.contact>a:hover{color:#fff}footer{background:none;padding:35px 65px;color:#8e8792}.skip{background:#1b1720;color:#fff}.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:20;background:transparent}.reading-progress span{display:block;width:0;height:100%;background:#e63946;box-shadow:0 0 14px #ff5262}.case-navigation{display:none}.reveal{animation:reveal-in .8s ease both}@keyframes reveal-in{from{opacity:.45;translate:0 18px}to{opacity:1;translate:0 0}}.case-window{min-width:0}.case-stage{min-width:0}
@media(min-width:1101px) and (min-height:760px) and (prefers-reduced-motion:no-preference){.horizontal-mode .case-scroll{position:relative;height:var(--rail-height,100vh)}.horizontal-mode .case-stage{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center}.horizontal-mode .case-window{overflow:hidden;padding:3px}.horizontal-mode .case-track{display:flex;gap:24px;will-change:transform}.horizontal-mode .case{flex:0 0 100%;width:100%;margin:0;min-height:610px;padding:35px!important;gap:35px;box-shadow:none}.horizontal-mode .case h3{font-size:38px}.horizontal-mode .case-copy>p{font-size:15px}.horizontal-mode .case-navigation{display:flex;justify-content:space-between;align-items:center;margin:0 3px 18px;font-size:12px;color:#bd8693}.case-navigation button{width:40px;height:35px;background:#291d25;border:1px solid #ff526238;color:#ff899c;border-radius:6px;margin-left:7px}.case-navigation button:hover{background:#56303c}.scroll-instruction{color:#847581;font-size:11px}.horizontal-mode .case-copy details{max-height:150px;overflow:auto}.horizontal-mode .case-copy summary{position:sticky;top:0;background:#19171c;padding-bottom:5px}}
@media(max-width:1100px){.header{padding:24px 32px}.hero{margin:0 25px;min-height:0;padding:65px 28px 0}.section{padding:65px 35px}.case{padding:30px!important;gap:30px}.case h3{font-size:34px}.case-copy>p{font-size:15px}.other,.contact{margin:0 25px}.journey-track{gap:15px}.journey-track article{padding:14px}.journey-track h3{font-size:22px}.journey-track p{font-size:13px}.demo-top{padding:15px;gap:8px}.coffee-content,.event-content,.auction-content{padding-left:21px;padding-right:21px}.approach{gap:35px}.architecture{padding:22px}h2{font-size:39px}}
@media(max-width:800px){.case{grid-template-columns:1fr}.case-copy>p,.case-copy details{max-width:none}.demo,.architecture{width:100%;max-width:520px;margin:auto}.journey-track{grid-template-columns:1fr 1fr;padding-top:25px;margin-top:25px;gap:25px}.journey-line{display:none}.journey-track article:nth-of-type(even){transform:none}.journey-track article{border-top:0;border-left:1px solid #e6394660;padding-left:20px}.journey-track p{font-size:14px}.journey h2{font-size:36px}.section-heading{align-items:flex-start}.section-heading>p{max-width:240px}.approach{grid-template-columns:1fr}.approach h2{font-size:36px}}
@media(max-width:700px){.header{padding:19px 20px;min-height:78px}.hero{margin:0 12px;border-radius:23px;padding:45px 16px 0}.hero .eyebrow{font-size:10px;letter-spacing:.1em}.hero h1{font-size:clamp(34px,8.8vw,58px);line-height:1.15;margin:28px 0 24px;letter-spacing:-.045em}.hero h1 em{font-style:italic}.hero-bottom{gap:25px}.hero-bottom p{font-size:15px;line-height:1.7}.hero-bottom p br{display:none}.primary{width:auto;margin:0;min-width:230px;padding:12px 18px}.stack-strip{margin-top:34px;gap:12px 20px;padding:20px 0;font-size:11px}.section{padding:54px 20px}.journey{padding-top:54px;padding-bottom:20px}.journey h2{font-size:31px}.journey-track{gap:15px}.journey-track article{padding:12px}.journey-track h3{font-size:22px}.journey-track p{font-size:13px}.journey-track span{font-size:10px}.section-heading{margin-bottom:28px;padding-bottom:23px}.section-heading h2{font-size:35px}.section-heading>p{max-width:none;margin-top:18px;font-size:14px}.case{padding:23px!important;border-radius:22px;gap:28px;margin-bottom:22px}.case h3{font-size:34px}.case-meta{font-size:10px;letter-spacing:.05em}.case-copy>p{font-size:15px}.case ul{font-size:14px}.tags span{font-size:11px;padding:4px 8px}.demo{border-radius:16px}.demo-top{font-size:10px}.demo-label{font-size:11px}.demo-footer{padding:14px 18px;font-size:11px}.demo h4{font-size:31px}.coffee-content,.event-content,.auction-content{padding:23px 18px 10px}.chat-heading{padding:16px}.chat-content{padding:19px 15px}.bubble{padding:14px;font-size:14px}.attachment{gap:8px;font-size:13px}.approval-buttons{gap:6px}.approval-buttons .demo-button,.secondary{font-size:12px;padding:10px 6px}.architecture{padding:25px 15px}.sources{gap:9px}.sources span{padding:9px 13px;font-size:13px}.other,.contact{margin:0 12px;padding:42px 22px;border-radius:23px}.other h3{font-size:25px}.other p{font-size:15px}.approach h2{font-size:34px}.contact h2{font-size:clamp(27px,7.5vw,49px);line-height:1.2;letter-spacing:-.05em}.contact>a{font-size:21px}.contact .eyebrow{font-size:11px}footer{padding:28px 23px;font-size:11px}.eyebrow{font-size:11px}.brand{font-size:14px}.contact-link{font-size:12px}}
@media(prefers-reduced-motion:reduce){#ambient{display:none}.reveal{animation:none}.primary{transition:none}}
@font-face{font-family:Inter;src:url('assets/inter-400.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Cormorant;src:url('assets/cormorant.woff2') format('woff2');font-weight:400;font-display:swap}.hero h1,h2,h3,h4{font-family:Cormorant,Georgia,serif}.hero h1{font-size:clamp(48px,7.2vw,98px)}.hero{position:relative}.hero:before{content:'';position:absolute;inset:0;background:radial-gradient(500px circle at var(--mouse-x,50%) var(--mouse-y,35%),#e6394610,transparent 65%);pointer-events:none}.hero .eyebrow{animation:hero-enter .8s ease both}.hero h1{animation:hero-enter 1s .12s ease both}.hero-bottom{animation:hero-enter 1s .25s ease both}.stack-strip{animation:hero-enter 1s .4s ease both}@keyframes hero-enter{from{opacity:0;transform:translateY(22px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}.journey-line path{animation:trace 35s linear infinite}@keyframes trace{to{stroke-dashoffset:-250}}.other-grid article{transition:transform .25s,border-color .25s,background .25s;transform-style:preserve-3d}.other-grid article:hover{border-color:#ff526288;background:linear-gradient(#e6394609,transparent)}.other-grid h3{transition:color .25s}.other-grid article:hover h3{color:#ff9cac}.lab{padding-bottom:30px}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.model-lab,.api-lab{background:linear-gradient(130deg,#1d1820,#111115);border:1px solid #ffffff14;border-radius:25px;padding:30px;min-width:0}.lab-top{display:flex;justify-content:space-between;gap:15px;font:11px/1.6 Consolas,monospace;color:#bb8498;margin-bottom:22px}.lab h3{font-size:32px;margin-bottom:12px}.lab article>p{font-size:14px}.lab-note{font-size:12px!important;line-height:1.7;color:#928593;margin-top:18px}.model-lab{display:flex;flex-direction:column}#model-view{position:relative;height:390px;min-height:300px;flex:1;cursor:grab;touch-action:pan-y;margin-top:15px;border-radius:16px;background:radial-gradient(ellipse at 50% 60%,#c5366020,transparent 65%);overflow:hidden}#model-view:active{cursor:grabbing}#model-view canvas{display:block;position:absolute;inset:0;width:100%;height:100%}#model-status{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:#d4a5b6;z-index:1}#model-status[hidden]{display:none}.model-controls{display:flex;justify-content:center;gap:7px;margin-top:17px;flex-wrap:wrap}.model-controls button{background:#28202c;border:1px solid #694158;color:#e7c3d5;border-radius:6px;font-size:12px;padding:9px 11px;min-height:40px}.model-controls button[aria-pressed=true]{background:#653046;border-color:#d7698e;color:#fff}.model-controls button:hover{background:#73415b}.api-controls{display:grid;gap:13px;margin-top:23px}.api-controls label{font-size:13px;color:#c3b0c0}.api-controls select{display:block;margin-top:6px;font-size:13px;padding:10px}.endpoint{display:flex;align-items:center;gap:12px;margin:20px 0;background:#0c0b10;border:1px solid #ffffff10;padding:12px;border-radius:7px}.endpoint span{font:11px Consolas,monospace;color:#ff98a7}.endpoint code{font:12px Consolas,monospace;color:#cbb1c2;overflow-wrap:anywhere}.pipeline{padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;font-size:11px;color:#8d7c91;margin:20px 0}.pipeline li{border-top:2px solid #49384b;padding-top:10px;transition:color .2s,border-color .2s}.pipeline span{display:block;font:11px Consolas,monospace;margin-bottom:3px}.pipeline .active{border-color:#f581a2;color:#ffc4d9;animation:pulse 1s ease infinite}.pipeline .done{border-color:#80bca0;color:#a2cdb6}.pipeline .error{border-color:#ff586d;color:#ff8798;animation:none}@keyframes pulse{50%{opacity:.4}}.api-result{background:#0a0a0e;border:1px solid #372736;border-radius:9px;overflow:hidden}.api-result>div{display:flex;justify-content:space-between;border-bottom:1px solid #2b202d;padding:10px 15px;font:11px Consolas,monospace;color:#8d778e}.api-result output{color:#d4b3d0}.api-result output[data-ok=true]{color:#91cdae}.api-result output[data-ok=false]{color:#ff8da0}.api-result pre{font:13px/1.8 Consolas,monospace;color:#e2bdce;margin:0;padding:18px;min-height:170px;white-space:pre-wrap;overflow-wrap:anywhere}.api-actions{display:flex;gap:10px;margin-top:16px}.api-actions .demo-button{flex:1;display:flex;justify-content:space-between;align-items:center}.api-actions .secondary{padding:10px 16px}.lab h2{font-size:46px}@media(max-width:900px){.lab-grid{grid-template-columns:1fr}.model-lab,.api-lab{padding:25px}#model-view{flex:auto;height:400px}.lab h2{font-size:37px}}@media(max-width:700px){.hero h1{font-size:clamp(36px,9.8vw,62px)}.lab{padding:50px 20px}.lab h2{font-size:34px}.lab h3{font-size:30px}.model-lab,.api-lab{padding:22px 18px;border-radius:21px}#model-view{height:330px}.model-controls{gap:5px}.model-controls button{font-size:11px;padding:8px 9px}.lab-top{font-size:10px}.api-result pre{font-size:12px}.pipeline{font-size:10px;gap:5px}.endpoint code{font-size:11px}}@media(prefers-reduced-motion:reduce){.hero .eyebrow,.hero h1,.hero-bottom,.stack-strip,.journey-line path,.pipeline .active{animation:none}.other-grid article{transition:none}}
