/* Palette and font families match nevesely.science. */
:root{--paper:#F7F4EE;--ink:#2B2B2B;--accent:#2F5D62;--accent-hover:#163A40;--nav:#af9d83;--line:#BFB4A5;--footer:#D9D0C3;--muted:#5E564D;--sans:'IBM Plex Sans',sans-serif;--serif:'IBM Plex Serif',serif;--radius:12px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.75 var(--serif);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}a{color:var(--accent);text-underline-offset:5px}a:hover{color:var(--accent-hover)}button{cursor:pointer}button:disabled{cursor:default}img{max-width:100%;height:auto}svg{display:block}h1,h2,h3,h4,nav,.button,.eyebrow,.small-label,.tag,.preview-tabs,.window-bar,.ui-sidebar,.ui-label,.file-format,.release,.os-name{font-family:var(--sans)}h1,h2,h3,h4{line-height:1.14;margin:0;font-weight:600}p{margin:0 0 1.2rem}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:var(--paper)}[hidden]{display:none!important}.shell{width:min(1180px,calc(100% - 80px));margin-inline:auto}.skip-link{position:fixed;top:10px;left:10px;z-index:1000;transform:translateY(-180%);background:var(--paper);padding:8px 14px}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:30;background:var(--nav);border-bottom:1px solid var(--line)}.header-inner{height:88px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:13px;color:var(--ink);text-decoration:none;flex-shrink:0}.brand:hover{color:var(--ink)}.brand-mark{width:61px;height:61px;border:1px solid rgba(43,43,43,.24);border-radius:13px;background:var(--paper);position:relative;display:block;overflow:hidden}.brand-mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:3px;transition:opacity .25s ease,transform .3s ease}.logo-alternate{opacity:0}.brand:hover .logo-original,.brand:focus-visible .logo-original{opacity:0}.brand:hover .logo-alternate,.brand:focus-visible .logo-alternate{opacity:1}.brand-name{font:700 25px/1 var(--sans);letter-spacing:.12em}.brand-description{display:block;font:400 11px/1.5 var(--sans);letter-spacing:.07em;margin-top:6px}.site-nav{margin-left:auto;display:flex;align-items:center;gap:31px;font-size:14px;font-weight:600}.nav-link{position:relative;color:var(--ink);text-decoration:none;padding:10px 0}.nav-link:after{position:absolute;content:'';height:2px;bottom:4px;left:0;right:0;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}.nav-link:hover:after,.nav-link[aria-current]:after{transform:scaleX(1)}.nav-author{border-left:1px solid rgba(43,43,43,.25);padding-left:29px;font-weight:400}.nav-author span{display:inline-block;margin-left:5px}.menu-toggle{display:none;margin-left:auto;border:1px solid var(--ink);border-radius:6px;background:transparent;padding:5px 11px;font:600 13px var(--sans);min-height:40px}
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:58px;align-items:center;padding-block:76px 68px}.eyebrow{font-size:12px;line-height:1.5;letter-spacing:.13em;text-transform:uppercase;font-weight:600;color:var(--accent);display:flex;align-items:center;gap:11px;margin-bottom:24px}.eyebrow:before{content:'';width:28px;height:1px;background:currentColor;flex-shrink:0}h1{font-size:clamp(47px,5.1vw,70px);letter-spacing:-.045em;margin:0 0 24px;line-height:1.06}h1 span{color:var(--accent)}.hero-description{max-width:560px;font-size:19px;line-height:1.7;color:var(--muted);margin-bottom:28px}.hero-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:12px 21px;border:1px solid var(--accent);border-radius:7px;text-decoration:none;font-size:14px;line-height:1.5;font-weight:600;transition:background .18s,color .18s,transform .18s;min-height:47px}.button-primary{background:var(--accent);color:var(--paper)}.button-primary:hover{color:var(--paper);background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-2px)}.button-secondary{background:transparent;color:var(--accent)}.button-secondary:hover{background:var(--footer)}.button svg{width:17px;height:17px;flex-shrink:0}.platform-note{font:400 12px/1.5 var(--sans);color:var(--muted);margin:18px 0 0;display:flex;align-items:center;gap:8px}.platform-note:before{content:'';height:5px;width:5px;background:var(--accent);border-radius:50%}.hero-art{display:flex;align-items:center;flex-direction:column;justify-content:center;position:relative;padding:12px 20px}.mascot-stage{position:relative;display:block;width:min(100%,348px);aspect-ratio:1;border:1px solid var(--line);border-radius:30px;background:var(--paper);padding:0;transform:rotate(3deg);box-shadow:11px 12px 0 var(--footer);transition:transform .35s ease,box-shadow .35s ease}.mascot-stage:before{content:'';position:absolute;inset:12px;border:1px solid var(--line);border-radius:21px;pointer-events:none}.mascot-stage img{position:absolute;inset:7%;width:86%;height:86%;object-fit:contain;transition:opacity .3s ease,transform .35s ease}.mascot-stage:focus-visible,.mascot-stage.is-flipped{transform:rotate(0);box-shadow:7px 8px 0 var(--footer)}.mascot-stage:focus-visible .logo-original,.mascot-stage.is-flipped .logo-original{opacity:0}.mascot-stage:focus-visible .logo-alternate,.mascot-stage.is-flipped .logo-alternate{opacity:1}.mascot-caption{margin:28px 0 0;font:400 12px/1.5 var(--sans);color:var(--muted);text-align:center}.mascot-caption span{font-size:15px;color:var(--accent);margin-left:4px}.hero-foot{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;font:400 13px/1.5 var(--sans);color:var(--muted)}.hero-foot strong{font-weight:600;color:var(--ink)}.hero-foot a{text-decoration:none;white-space:nowrap}
.section{padding-block:82px}.section-header{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:46px}.section-index{font:400 12px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 17px}.section-index span{color:var(--accent);margin-right:10px}.section h2{font-size:clamp(30px,3.5vw,43px);letter-spacing:-.035em;max-width:550px}.section-intro{color:var(--muted);margin:0;max-width:490px;font-size:17px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:66px}.feature{display:grid;grid-template-columns:38px 1fr;gap:13px;border-top:1px solid var(--line);padding:25px 0 26px}.feature-number{font:400 12px/1.5 var(--sans);color:var(--accent);padding-top:4px}.feature h3{font-size:20px;letter-spacing:-.02em;margin:0 0 11px}.feature p{font-size:15px;line-height:1.8;color:var(--muted);margin:0}.feature-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.tag{font-size:10px;line-height:1.5;letter-spacing:.04em;border:1px solid var(--line);border-radius:4px;color:var(--muted);padding:3px 7px}
.overview-section{background:var(--footer);border-block:1px solid var(--line)}.preview-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:27px;flex-wrap:wrap}.preview-tab{font:500 13px/1.5 var(--sans);border:1px solid transparent;padding:9px 15px;border-radius:6px;background:transparent;color:var(--muted)}.preview-tab[aria-selected=true]{background:var(--paper);color:var(--accent-hover);border-color:var(--line);box-shadow:0 2px 4px rgba(43,43,43,.03)}.preview-tab:hover{color:var(--accent-hover);border-color:var(--line)}.preview-layout{display:grid;grid-template-columns:260px 1fr;gap:45px;align-items:center}.preview-copy h3{font-size:25px;letter-spacing:-.025em;margin:12px 0 17px}.preview-copy p{font-size:15px;color:var(--muted)}.small-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.preview-copy a{font:600 12px var(--sans);text-decoration:none}.preview-window{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 16px 34px rgba(63,54,42,.08)}.window-bar{height:39px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:10px;color:var(--muted);gap:12px}.window-dots{display:flex;gap:5px}.window-dots i{display:block;width:6px;height:6px;border-radius:50%;background:var(--line)}.placeholder-label{border:1px solid var(--line);padding:2px 7px;border-radius:4px;font-size:9px;letter-spacing:.04em;white-space:nowrap}.ui-content{display:grid;grid-template-columns:125px 1fr;min-height:327px}.ui-sidebar{padding:23px 14px;border-right:1px solid var(--line);font-size:10px;color:var(--muted);background:rgba(191,180,165,.1);display:flex;flex-direction:column;gap:9px}.ui-sidebar b{font-size:11px;color:var(--ink);letter-spacing:.08em;margin-bottom:15px}.ui-sidebar span{padding:5px 7px;border-radius:3px}.ui-sidebar .selected{background:var(--accent);color:var(--paper)}.ui-main{padding:26px 26px 20px;display:flex;flex-direction:column;min-width:0}.ui-label{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;display:flex;justify-content:space-between;gap:12px}.molecule-illustration{flex:1;min-height:185px;width:100%;max-height:206px}.ui-bottom{margin-top:17px;padding-top:12px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap}.ui-chip{font:400 9px var(--sans);border:1px solid var(--line);border-radius:3px;padding:5px 7px;color:var(--muted)}.plot-placeholder{width:100%;height:206px;overflow:visible}.plot-placeholder text,.molecule-illustration text{font-family:var(--sans);fill:var(--muted);font-size:10px}.preview-note{margin:20px 0 0;text-align:right;font:400 11px/1.5 var(--sans);color:var(--muted)}.preview-panel+.preview-panel{margin-top:35px}.js .preview-panel+.preview-panel{margin-top:0}
.download-section{padding-bottom:68px}.downloads-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.download-card{border:1px solid var(--line);border-radius:10px;padding:27px 25px 24px;display:flex;flex-direction:column;background:var(--paper);transition:border-color .2s,transform .2s}.download-card:hover{border-color:var(--accent);transform:translateY(-3px)}.os-heading{display:flex;align-items:center;gap:14px;margin-bottom:20px}.os-icon{width:29px;height:29px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.os-name{font-size:23px;font-weight:600;line-height:1.2;letter-spacing:-.02em}.os-description{font:400 12px/1.6 var(--sans);color:var(--muted);margin-top:5px}.release{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--accent);margin-bottom:16px}.release:before{content:'';height:5px;width:5px;background:var(--accent);border-radius:50%}.download-link{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;border-top:1px solid var(--line);padding:14px 0;color:var(--accent)}.download-link:last-of-type{margin-bottom:0}.download-link svg{width:17px;height:17px;flex-shrink:0}.download-label{font:600 13px/1.5 var(--sans)}.file-name{display:block;font:400 10px/1.5 var(--sans);color:var(--muted);overflow-wrap:anywhere;margin-top:4px}.download-help{margin:12px 0 0;font-size:12px;line-height:1.7;color:var(--muted)}.downloads-bottom{display:flex;justify-content:space-between;gap:25px;margin-top:24px;font:400 12px/1.7 var(--sans);color:var(--muted)}.downloads-bottom p{margin:0;max-width:550px}.downloads-bottom a{white-space:nowrap}.contact-strip{border-top:1px solid var(--line);padding:28px 0 54px;display:flex;align-items:center;justify-content:space-between;gap:30px}.contact-strip h2{font-size:23px;letter-spacing:-.02em}.contact-strip p{font-size:14px;color:var(--muted);margin:7px 0 0}.contact-strip>a{font:600 14px var(--sans);white-space:nowrap}.site-footer{background:var(--footer);border-top:1px solid var(--line);padding:28px 0 24px;color:var(--muted);font:400 12px/1.7 var(--sans)}.footer-top{display:flex;justify-content:space-between;gap:25px;align-items:center}.footer-brand{font:700 18px var(--sans);letter-spacing:.1em;color:var(--ink);margin-right:12px}.footer-links{display:flex;gap:24px}.footer-links a{color:var(--ink);text-decoration:none}.footer-disclaimer{font-size:10px;margin:17px 0 0;color:var(--muted)}
@media(min-width:1450px){.hero{padding-block:92px 78px}.section{padding-block:95px}}
@media(max-width:1000px){.shell{width:calc(100% - 52px)}.hero{gap:30px}.brand-description{display:none}.site-nav{gap:23px}.nav-author{padding-left:20px}.hero-art{padding:10px}.section-header{gap:40px}.preview-layout{grid-template-columns:210px 1fr;gap:30px}.ui-content{grid-template-columns:105px 1fr}.ui-main{padding:22px 17px 17px}.feature-grid{column-gap:35px}.download-card{padding:23px 18px}.downloads-grid{gap:14px}}
@media(max-width:760px){html{scroll-padding-top:88px}.shell{width:calc(100% - 40px)}.header-inner{height:76px;gap:20px}.brand-mark{width:51px;height:51px;border-radius:10px}.brand-name{font-size:22px}.brand-description{display:block;font-size:9px}.menu-toggle{display:block}.site-nav{position:absolute;top:76px;left:0;right:0;background:var(--nav);border-bottom:1px solid var(--line);margin:0;padding:16px 20px 20px;display:flex;gap:6px;align-items:stretch;flex-direction:column;box-shadow:0 6px 10px rgba(43,43,43,.05)}.js .site-nav{display:none}.js .site-nav.is-open{display:flex}.nav-link{padding:8px 0}.nav-link:after{right:auto;width:35px;bottom:5px}.nav-author{border-left:0;padding-left:0;margin-top:5px;font-size:12px}.hero{grid-template-columns:1fr;gap:36px;padding-block:45px 43px}.hero-description{font-size:17px;max-width:100%}h1{font-size:51px;max-width:550px}.hero-art{padding:5px 30px}.mascot-stage{width:265px;border-radius:25px}.mascot-stage:before{border-radius:17px}.mascot-caption{margin-top:23px;font-size:11px}.eyebrow{font-size:10px;margin-bottom:20px;letter-spacing:.1em}.hero-foot{font-size:11px;gap:18px;padding:16px 0;align-items:flex-start}.hero-foot a{white-space:normal}.section{padding-block:53px}.section-header{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.section h2{font-size:34px}.section-intro{font-size:15px;max-width:100%}.section-index{font-size:10px;margin-bottom:13px}.feature-grid{grid-template-columns:1fr}.feature{grid-template-columns:29px 1fr;padding-block:22px;gap:12px}.feature h3{font-size:19px}.feature p{font-size:14px}.preview-layout{grid-template-columns:1fr;gap:25px}.preview-copy{max-width:500px}.preview-copy h3{font-size:25px;margin:9px 0 12px}.preview-copy p{margin-bottom:10px}.preview-tabs{gap:5px;margin-bottom:26px;padding-bottom:12px}.preview-tab{font-size:11px;padding:8px 9px}.ui-content{grid-template-columns:94px 1fr;min-height:280px}.ui-sidebar{padding:19px 9px;font-size:9px;gap:6px}.ui-main{padding:19px 13px 14px}.ui-label{font-size:8px}.plot-placeholder{height:175px}.molecule-illustration{min-height:170px;max-height:175px}.ui-chip{font-size:8px;padding:4px 5px}.window-bar{padding-inline:12px;font-size:9px}.placeholder-label{font-size:8px}.preview-note{font-size:10px;text-align:left}.downloads-grid{grid-template-columns:1fr;gap:16px}.download-card{padding:24px}.download-card:hover{transform:none}.os-heading{margin-bottom:13px}.download-help{font-size:12px}.file-name{font-size:11px}.downloads-bottom{flex-direction:column;gap:12px}.contact-strip{padding-bottom:37px;align-items:flex-start;flex-direction:column;gap:16px}.contact-strip h2{font-size:22px}.footer-top{align-items:flex-start;flex-direction:column;gap:17px}.footer-links{gap:20px}.site-footer{padding-block:25px}.hero-actions .button{font-size:13px;padding:11px 17px}.platform-note{font-size:11px}}
@media(max-width:380px){.shell{width:calc(100% - 30px)}h1{font-size:45px}.brand-description{display:none}.hero-actions{gap:9px}.hero-actions .button{padding:10px 13px}.ui-content{grid-template-columns:78px 1fr}.ui-sidebar{font-size:8px}.preview-tab{font-size:10px;padding:8px}.preview-window .window-bar>span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.button-primary:hover,.download-card:hover{transform:none}}

@media(hover:hover){.mascot-stage:hover{transform:rotate(0);box-shadow:7px 8px 0 var(--footer)}.mascot-stage:hover .logo-original{opacity:0}.mascot-stage:hover .logo-alternate{opacity:1}}


/* Element symbols replace sequence numbers. Main sections use large element tiles;
   feature markers and overview tabs stay deliberately smaller. */
.section-index{display:flex;align-items:center;gap:14px}
.section-index>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;margin:0;border:1px solid var(--accent);border-radius:6px;font-size:28px;font-weight:600;line-height:1;letter-spacing:-.03em;text-transform:none}
.feature-number{font-size:13px;font-weight:600}
.release-archive{margin-top:30px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
.release-archive>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;list-style:none;cursor:pointer;border-radius:9px;color:var(--accent);font-family:var(--sans)}
.release-archive>summary::-webkit-details-marker{display:none}
.release-archive>summary::marker{content:''}
.release-archive>summary:hover{background:rgba(191,180,165,.12)}
.release-archive>summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.archive-summary{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.archive-title{font-size:16px;font-weight:600}
.archive-subtitle{font-size:12px;color:var(--muted)}
.archive-chevron{width:19px;height:19px;flex-shrink:0;transition:transform .2s ease}
.release-archive[open] .archive-chevron{transform:rotate(180deg)}
.archive-content{border-top:1px solid var(--line);padding:20px 24px}
.archive-empty{font-size:14px;color:var(--muted);margin:0}
@media(max-width:760px){.section-index{gap:12px}.section-index>span{flex-basis:43px;width:43px;height:43px;font-size:25px}.release-archive{margin-top:25px}.release-archive>summary{padding:18px 20px}.archive-summary{display:block}.archive-subtitle{display:block;margin-top:3px;font-size:11px}.archive-content{padding:18px 20px}}

/* Tutorials are outlines until worked examples and files are published. */
.tutorial-section{border-bottom:1px solid var(--line)}
.tutorial-construction{display:flex;align-items:flex-start;gap:15px;border:1px dashed var(--line);border-radius:8px;padding:19px 23px;margin-bottom:27px;background:rgba(217,208,195,.18)}
.tutorial-construction>svg{width:23px;height:23px;flex-shrink:0;color:var(--accent);margin-top:2px}
.tutorial-status{font:600 14px/1.5 var(--sans);color:var(--accent);margin:0 0 4px}
.tutorial-construction-copy{font-size:14px;line-height:1.75;color:var(--muted);margin:0}
.tutorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tutorial-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;padding:26px 24px 22px;min-width:0}
.tutorial-category{display:flex;gap:12px;align-items:center;font:400 11px/1.5 var(--sans);color:var(--muted);margin:0 0 21px}
.tutorial-category>span{color:var(--accent);font-weight:600}
.tutorial-card h3{font-size:23px;letter-spacing:-.025em;margin:0 0 17px;min-height:2.3em}
.tutorial-description{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 20px}
.tutorial-outline{padding-left:18px;margin:0 0 24px;font-size:13px;line-height:1.8;color:var(--muted)}
.tutorial-outline li{padding-left:3px;margin-bottom:7px}
.tutorial-outline li::marker{color:var(--accent)}
.tutorial-files{margin:auto 0 0;padding-top:16px;border-top:1px solid var(--line);font:600 10px/1.6 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
.tutorial-files>span{display:block;font:400 12px/1.6 var(--sans);letter-spacing:normal;text-transform:none;color:var(--muted);margin-top:6px}
.tutorial-note{margin:22px 0 0;font:400 12px/1.7 var(--sans);color:var(--muted)}
@media(max-width:1000px){.tutorial-grid{gap:14px}.tutorial-card{padding:23px 18px 20px}.tutorial-card h3{font-size:21px}}
@media(max-width:760px){.tutorial-grid{grid-template-columns:1fr;gap:16px}.tutorial-construction{padding:17px 18px;gap:12px}.tutorial-construction-copy{font-size:13px}.tutorial-card{padding:24px}.tutorial-card h3{font-size:23px;min-height:0}.tutorial-category{margin-bottom:17px}.tutorial-note{font-size:11px}}
