:root{--paper:#f4f3ef;--ink:#202228;--muted:#535760;--line:#c9cbd1;--blue:#3154d9;--rust:#ad4b22;--panel:#fff;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.6 Arial,Helvetica,sans-serif}button,input,select{font:inherit}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--blue)}button,a,input,select,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}.wrap{width:min(1440px,calc(100% - 80px));margin:auto}.skip{position:fixed;left:10px;top:10px;transform:translateY(-160%);z-index:99;background:white;padding:12px}.skip:focus{transform:none}.site-nav{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:10}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}.brand{font-size:18px;letter-spacing:-.5px;font-weight:bold;text-decoration:none}.brand span{font:12px var(--mono);color:var(--muted);margin-left:10px}.nav-inner nav{display:flex;gap:25px;font-size:13px}.nav-inner nav a{text-decoration:none}.intro{padding:38px 0 32px}.eyebrow{font:11px var(--mono);letter-spacing:1.7px;text-transform:uppercase;color:var(--blue);margin:0 0 18px}.intro-line{display:flex;justify-content:space-between;align-items:end;gap:40px}h1{font-size:clamp(36px,5vw,70px);font-weight:500;letter-spacing:-3px;line-height:1.05;margin:0 0 18px}.period{color:var(--blue)}.dek{font-size:22px;line-height:1.35;margin:0;letter-spacing:-.3px}.intro-note{max-width:350px;color:var(--muted);font-size:14px;margin:0 0 3px}.experiment{border:1px solid var(--line);background:var(--panel)}.lab-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:15px 24px;gap:20px}.lab-heading h2{font-size:17px;margin:0;font-weight:500}.lab-heading p{font:11px var(--mono);color:var(--muted);margin:0}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-right:7px}.lab-layout{display:grid;grid-template-columns:255px minmax(0,1fr)}.controls{padding:25px 22px;border-right:1px solid var(--line);background:#f8f8f6}.presets{border:0;padding:0;margin:0 0 25px;display:flex;flex-wrap:wrap;gap:7px}.presets legend{font-size:12px;margin-bottom:10px;color:var(--muted)}button{border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px 12px;min-height:42px}.presets button{font-size:12px;padding:5px 9px;min-height:34px}.presets .active{border-color:var(--blue);color:var(--blue);background:#edf0ff}.slider-group{margin-bottom:23px}.slider-group label,.timeline label{display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:12px}.slider-group output,.timeline output{font:15px var(--mono);color:var(--blue)}input[type=range]{display:block;width:100%;margin:8px 0 0;accent-color:var(--blue);min-height:30px;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font:10px var(--mono);color:var(--muted);margin-top:-2px}.hint{font-size:11px;line-height:1.5;color:var(--muted)}.slider-group .hint{margin:8px 0 0}.checkbox{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer}.checkbox input{width:17px;height:17px;accent-color:var(--blue);margin:0}.play-actions{display:flex;gap:9px;margin:23px 0 12px}.play-actions button{flex:1}.primary{background:var(--ink);color:white;border-color:var(--ink)}.primary:hover{background:var(--blue);color:white;border-color:var(--blue)}.play-options{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px}.play-options select{font-size:12px;padding:4px;border:1px solid var(--line);background:white}.semantics{border-top:1px solid var(--line);padding-top:16px;margin-bottom:0}.visuals{padding:23px 25px 18px;min-width:0}.legend{display:flex;gap:22px;font-size:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.legend span:before{content:'';display:inline-block;width:23px;border-top:3px solid var(--blue);margin-right:7px;vertical-align:middle}.legend .harmonic:before{border-top-color:var(--rust);border-top-style:dashed}.legend a{margin-left:auto;font-size:11px;color:var(--muted)}.plots{display:grid;grid-template-columns:1fr 1fr;gap:16px}.plot{margin:0;min-width:0}.plot figcaption{display:flex;justify-content:space-between;gap:8px;font:10px var(--mono);border-bottom:1px solid #e5e7eb;padding-bottom:10px;color:var(--muted)}.plot figcaption strong{font-weight:400;color:var(--ink)}svg{display:block;width:100%;height:auto}.svg-note{font:14px Arial;fill:#626874}.svg-label{font:13px var(--mono);fill:#535760;letter-spacing:2px}.svg-readout{font:20px var(--mono);fill:#3154d9}.svg-axis{font:16px Arial;fill:#535760}.svg-tick{font:13px var(--mono);fill:#535760}.timeline{padding-top:9px;border-top:1px solid #e5e7eb}.timeline label{font-size:12px}.timeline output{font-size:12px;color:var(--muted)}.timeline input{margin:0}.metrics{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:15px;border-top:1px solid var(--line);padding-top:17px;margin-top:15px}.metrics span{font-size:11px;color:var(--muted);display:block}.metrics strong{font:23px var(--mono);display:block;margin-top:5px}.regime{font-size:12px;margin:13px 0 0;color:var(--muted)}.lab-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:12px 23px;font-size:11px;color:var(--muted)}.lab-footer p{margin:0}.lab-footer button{font-size:11px;min-height:35px;white-space:nowrap}.notice{padding:15px 24px;background:#edf0ff;border-bottom:1px solid var(--line);font-size:14px}.notice.error{background:#fff0e8;color:#7c2d12}.explanation{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;padding-top:90px;padding-bottom:60px}.section-head h2,.paper h2{font-size:clamp(32px,3.8vw,53px);font-weight:500;line-height:1.1;letter-spacing:-1.7px;margin:0}.story p{font-size:16px;line-height:1.8;color:var(--muted);margin:0 0 20px}.story .large{font-size:23px;line-height:1.5;color:var(--ink)}.finding{border-left:3px solid var(--blue);padding:17px 24px;background:#e9ebf2;margin:28px 0}.finding strong{font:35px var(--mono);color:var(--blue)}.finding p{font-size:14px;margin:10px 0 0}.details-section{padding-bottom:65px}details{border-top:1px solid var(--line);padding:19px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-size:17px;min-height:28px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin:15px 0 8px;padding-left:22px}.detail-grid p{font-size:14px;color:var(--muted)}.detail-grid .equation{font:18px/1.9 var(--mono);color:var(--ink)}.paper{display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:100px;padding:45px;background:#e9ebf2}.paper p:not(.eyebrow){color:var(--muted);max-width:590px;font-size:15px}.paper-links{display:flex;flex-direction:column;align-items:start;gap:20px}.button{display:inline-flex;text-decoration:none;align-items:center;padding:13px 18px;border:1px solid var(--line);font-size:14px;min-height:48px}.provenance{padding-top:32px;font-size:12px;color:var(--muted)}.provenance p{max-width:1100px}.footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:25px 0;margin-top:40px;font:11px var(--mono);color:var(--muted)}[hidden]{display:none!important}@media(min-width:1600px){.lab-layout{grid-template-columns:280px 1fr}.controls{padding:25px 28px}.visuals{padding-left:30px;padding-right:30px}}@media(max-width:1100px){.wrap{width:calc(100% - 44px)}.lab-layout{grid-template-columns:235px 1fr}.visuals{padding:20px 16px}.intro-note{max-width:270px}.metrics strong{font-size:19px}.explanation{gap:50px}.legend{gap:13px}.legend a{margin-left:0}.paper{gap:45px}}@media(max-width:800px){.brand span,.intro-note{display:none}.nav-inner nav{gap:15px;font-size:12px}.lab-layout{grid-template-columns:1fr}.controls{border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;padding:20px}.presets{grid-column:1/-1;margin:0}.slider-group{margin:0}.semantics{grid-column:1/-1;margin:0;padding-top:10px}.play-actions{margin:0}.play-options{grid-column:1/-1;justify-content:start;gap:30px}.visuals{padding:20px}.lab-heading p{max-width:190px;line-height:1.5}.explanation{grid-template-columns:1fr;gap:28px;padding-top:55px}.section-head h2 br{display:none}.paper{gap:25px;padding:28px}.detail-grid{gap:25px}.intro{padding-top:28px}.dek{font-size:20px}.metrics strong{font-size:21px}.lab-footer{align-items:start}.lab-footer p{max-width:60%}}@media(max-width:560px){.wrap{width:calc(100% - 28px)}.nav-inner{min-height:62px}.nav-inner nav a:nth-child(2){display:none}.brand{font-size:15px}.nav-inner nav{gap:14px;font-size:11px}h1{font-size:39px;letter-spacing:-2px}.intro{padding-bottom:25px}.dek{font-size:18px}.lab-heading{padding:13px 16px}.lab-heading p{font-size:9px;max-width:135px}.lab-heading h2{font-size:15px}.controls{gap:18px;padding:17px}.plots{grid-template-columns:1fr;gap:18px}.visuals{padding:18px 13px}.plot figcaption{font-size:10px}.plot svg{max-height:355px}.legend{font-size:10px;gap:12px}.legend a{width:100%;font-size:10px}.metrics{gap:11px;grid-template-columns:1fr 1fr}.metrics>div:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e5e7eb;padding-top:10px}.metrics strong{font-size:22px}.lab-footer{padding:12px 15px;display:block}.lab-footer p{max-width:none}.lab-footer button{margin-top:10px}.detail-grid,.paper{grid-template-columns:1fr;gap:12px}.detail-grid{padding-left:0}.explanation{padding-bottom:32px}.story .large{font-size:21px}.finding strong{font-size:29px}.paper{padding:25px}.footer{display:block;line-height:2}.footer span{display:block}.presets button{font-size:11px}.play-actions button{font-size:13px}.slider-group label{font-size:12px}.slider-group output{font-size:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.lab-footer .button{font-size:11px;min-height:35px;padding:8px 12px;white-space:nowrap}@media(max-width:560px){.lab-footer .button{margin-top:10px}}

/* Portfolio presentation: the motion and phase portrait carry the visual emphasis. */
:root { --paper:#f3f5f6; --ink:#172b3a; --muted:#475967; --line:#c5cfd5; --panel:#fff; }
body { font:16px/1.65 'Segoe UI',Arial,sans-serif; background:var(--paper); }
.site-nav { background:#fff; position:relative; }
.nav-inner nav { font-size:14px; flex-wrap:wrap; }
.nav-inner nav a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; }
.brand { font-size:20px; }
.brand span { font:12px/1.5 'Segoe UI',Arial,sans-serif; }
.intro { padding:38px 0 28px; }
h1 { font-size:clamp(38px,4.2vw,58px); letter-spacing:-1.8px; }
.eyebrow { font:13px/1.5 'Segoe UI',Arial,sans-serif; text-transform:none; letter-spacing:.3px; }
.experiment { border-radius:4px; }
.controls { background:#eef2f4; }
button,.button,select { border-radius:3px; min-height:44px; }
.presets button,.play-options,.play-options select,.lab-footer button,.lab-footer .button { font-size:13px; min-height:44px; }
.lab-heading p,.hint,.checkbox,.legend,.legend a,.plot figcaption,.metrics span,.lab-footer,.provenance,.footer { font-size:13px; }
.range-ends { font-size:12px; }
input[type=range] { min-height:36px; }
.checkbox { min-height:36px; }
.checkbox input { width:20px; height:20px; flex-shrink:0; }
.play-options select { min-width:65px; padding:7px; }
.plot { padding:10px; background:#fff; border:1px solid var(--line); border-radius:3px; }
.plot figcaption { flex-wrap:wrap; }
.plot figcaption a { display:inline-flex; align-items:center; min-height:44px; padding:6px 4px; }
#study .plot figcaption { align-items:center; column-gap:16px; }
.paper,.finding { background:#e8eef1; }
.lab-jumps { display:flex; gap:8px 22px; flex-wrap:wrap; margin:0; padding:8px 24px; border-bottom:1px solid var(--line); font-size:13px; }
.lab-jumps a { display:inline-flex; min-height:36px; align-items:center; }
.slider-group label,.timeline label { flex-wrap:wrap; }
.primary { background:var(--blue); border-color:var(--blue); }
@media(max-width:800px) {
  .nav-inner { padding:12px 0 6px; display:block; }
  .nav-inner nav { gap:4px 20px; margin-top:5px; }
}
@media(max-width:560px) {
  .nav-inner nav { font-size:14px; }
  .nav-inner nav a:nth-child(2) { display:inline-flex; }
  .brand { font-size:19px; }
  .intro { padding:28px 0 22px; }
  h1 { font-size:38px; }
  .dek { font-size:18px; }
  .lab-heading { flex-wrap:wrap; gap:5px; }
  .lab-heading p { max-width:none; font-size:12px; }
  .lab-jumps { padding:8px 16px; }
  .controls { gap:20px 16px; }
  .presets button,.slider-group label,.legend,.legend a,.plot figcaption { font-size:13px; }
  .slider-group output { font-size:14px; }
  .plot svg { max-height:none; }
  .svg-note,.svg-label,.svg-tick { font-size:22px; }
  .svg-axis { font-size:23px; }
  .svg-label { letter-spacing:0; }
  .play-actions { grid-column:1/-1; }
  .lab-footer button,.lab-footer .button { white-space:normal; font-size:13px; }
  .metrics span { font-size:13px; }
}
