.wave-page{background:var(--cream);color:var(--ink)}
.wave-page button,.wave-page input,.wave-page summary{-webkit-tap-highlight-color:transparent}
.wave-skip{position:absolute;left:16px;top:-90px;padding:12px 16px;background:var(--paper);z-index:100}
.wave-skip:focus{top:12px}
.wave-main{padding:0 0 64px;background:radial-gradient(ellipse at 80% 0,#fff 0,transparent 30%),linear-gradient(135deg,#fff4bf 0,#fff9e8 25%,#dff7f1 65%,#dff3ff 100%)}
.wave-intro,.wave-experience,.wave-reflection{width:min(90%,1200px);margin-left:auto;margin-right:auto}
.wave-intro{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;align-items:center;padding:48px 0 38px}
.wave-intro .eyebrow{grid-column:1/-1;color:var(--teal);font-size:.92rem;letter-spacing:.1em;margin:0 0 16px}
.wave-intro h1{font-size:clamp(3.3rem,6.3vw,5.6rem);line-height:.98;letter-spacing:-.055em;margin:0;text-wrap:balance}
.wave-intro h1 span{display:block;color:var(--orange)}
.wave-invitation{font-size:clamp(1.35rem,2vw,1.65rem);font-weight:900;line-height:1.35;margin:0 0 14px;color:var(--ink);text-wrap:balance}
.wave-invitation span{display:inline-block}
.wave-intro-note{font-size:1rem;line-height:1.55;margin:0;max-width:52ch;text-wrap:pretty}
.wave-intro-note+.wave-intro-note{margin-top:7px}
.wave-experience{background:var(--paper);padding:28px 32px 0;border:2px solid #e8dcc0;border-radius:28px;box-shadow:8px 9px 0 #ffc83d70}
.wave-heading-row{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap;margin-bottom:22px}
.wave-badge{padding:5px 13px;border-radius:999px;background:#fff0ba;color:#704e08;font-size:.78rem;font-weight:900}
.wave-tuning{font-size:.85rem;color:var(--ink);font-weight:900}
.wave-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.wave-presets button{min-height:48px;padding:11px 12px;border:2px solid #c9dcd9;border-radius:14px;background:#eff8f4;color:var(--ink);font-size:.95rem;font-weight:900;line-height:1.25;cursor:pointer;transition:background .15s,border-color .15s}
.wave-presets button:hover{background:#dff4ec;border-color:var(--teal)}
.wave-presets button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:3px 4px 0 #ffc83d95}
.wave-detail{font-size:1.08rem;font-weight:900;line-height:1.5;min-height:1.5em;margin:22px 0 18px;text-wrap:pretty}
.wave-interference-control{background:#e7f5ee;border:1px solid #c6ded4;border-radius:16px;padding:16px 20px;margin:0 0 22px}
.wave-interference-control label{display:flex;justify-content:space-between;gap:12px;font-size:.95rem;font-weight:900}
.wave-interference-control output{font-variant-numeric:tabular-nums}
.wave-interference-control input{display:block;width:100%;height:42px;margin:2px 0;accent-color:var(--purple);cursor:pointer}
.wave-interference-control p{font-size:.85rem;line-height:1.5;margin:0;color:var(--ink);text-wrap:pretty}
.wave-listen-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-bottom:24px}
.wave-listen{border:0;border-radius:999px;background:var(--navy);color:#fff;font-size:1rem;font-weight:900;padding:13px 24px;min-height:48px;cursor:pointer;box-shadow:4px 5px 0 var(--sun)}
.wave-listen:hover{background:#084d7e}
.wave-audio-status{font-size:.85rem;color:#405b70;flex:1 1 220px;text-wrap:pretty}
.wave-legend{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:.8rem;line-height:1.4}
.wave-legend>span{display:inline-flex;align-items:center;gap:8px}
.wave-key{display:inline-block;width:26px;border-top:3px solid}
.wave-key-a{border-color:#075e9e}.wave-key-b{border-color:#b24810;border-top-style:dashed}.wave-key-sum{border-color:#08776d}.wave-key-interference{border-color:#7650a5}
.wave-plot{width:100%;min-width:0;margin-top:20px}
.wave-chart{display:block;width:100%;height:auto;overflow:visible}
.wave-chart text{fill:var(--ink);font:13px "Trebuchet MS",Arial,sans-serif}
.wave-chart .wave-panel-title{font-weight:900}
.wave-chart path{fill:none;vector-effect:non-scaling-stroke}
.wave-settings{margin-top:14px;border-top:1px solid var(--line)}
.wave-settings summary{padding:22px 0;min-height:48px;font-size:1.05rem;font-weight:900;cursor:pointer}
.wave-settings-note{font-size:.9rem;color:#405b70;margin:0 0 22px;max-width:75ch;text-wrap:pretty}
.wave-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 34px}
.wave-control-grid>section,.wave-control-grid>div{min-width:0}
.wave-control-grid h2{font-size:1.3rem;margin:0 0 12px}
.wave-control-grid label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font-size:.9rem;line-height:1.4}
.wave-control-grid output{font-variant-numeric:tabular-nums;font-weight:900}
.wave-control-grid input[type="range"]{display:block;width:100%;min-width:0;height:42px;margin:2px 0 10px;accent-color:var(--navy);cursor:pointer}
.wave-extra-controls{padding-top:9px;padding-bottom:15px}
.wave-reflection{margin-top:52px;font-size:1.08rem}
.wave-reflection h2{font-size:clamp(1.9rem,3.6vw,2.8rem);line-height:1.12;letter-spacing:-.035em;margin:0 0 22px;text-wrap:balance}
.wave-reflection>p,.wave-meaning{max-width:76ch}
.wave-reflection p{margin:0 0 18px;text-wrap:pretty}
.wave-reflection>p:first-of-type{font-size:1.16rem;line-height:1.55;color:#08776d;font-weight:900;max-width:65ch}
.wave-boundary{font-size:.92rem;color:#405b70}
.wave-reflection a{font-weight:900;text-decoration-thickness:1px;text-underline-offset:4px}
.wave-reflection>a{display:inline-block;margin-top:4px;color:var(--navy)}
.wave-meaning{border-top:1px solid #aecdc4;border-bottom:1px solid #aecdc4;margin:26px 0}
.wave-meaning summary{padding:18px 0;cursor:pointer;font-weight:900;line-height:1.5}
.wave-meaning p{font-size:1rem}
.wave-meaning .wave-reading{font-size:.85rem;color:#405b70}
@media(max-width:900px){.wave-intro{column-gap:30px}.wave-desktop-break{display:none}.wave-presets{gap:8px}.wave-presets button{font-size:.88rem;padding:10px 6px}}
@media(max-width:680px){.wave-main{padding-bottom:42px}.wave-intro{grid-template-columns:1fr;padding:32px 0 28px;gap:0}.wave-intro .eyebrow{font-size:.75rem;max-width:30ch;margin-bottom:16px}.wave-intro h1{font-size:clamp(3.1rem,12vw,4.8rem);margin:0 0 24px}.wave-intro h1 span{display:inline}.wave-intro-copy{max-width:48ch}.wave-invitation{font-size:1.35rem;max-width:25ch}.wave-experience{padding:22px 20px 0;border-radius:22px;box-shadow:5px 6px 0 #ffc83d70}.wave-presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wave-presets button{font-size:.95rem;padding:11px 9px}.wave-heading-row{margin-bottom:20px}.wave-control-grid{grid-template-columns:1fr;gap:16px}.wave-detail{font-size:1rem}.wave-interference-control{padding:14px}.wave-listen-row{gap:16px}.wave-reflection{margin-top:40px;font-size:1rem}.wave-reflection>p:first-of-type{font-size:1.08rem}}
@media(max-width:400px){.wave-intro,.wave-experience,.wave-reflection{width:calc(100% - 32px)}.wave-experience{padding:20px 14px 0}.wave-presets{gap:8px}.wave-presets button{font-size:.88rem;padding:10px 6px}.wave-tuning{font-size:.8rem}.wave-legend{gap:8px 13px;font-size:.76rem}.wave-key{width:19px}.wave-interference-control{padding:12px}.wave-interference-control label{font-size:.88rem}}
@media(prefers-reduced-motion:reduce){.wave-page{scroll-behavior:auto}.wave-presets button{transition:none}}
