/* Personal world: a portal, building pieces, science, and very large numbers. */
.wordmark{font-size:36px;letter-spacing:-.055em}
.site-header{position:relative;z-index:3;padding-top:25px;padding-bottom:25px}
/* Keep the art inside the hero body, below the navigation at every height. */
.hero-art{position:relative;inset:auto;width:110%;height:auto;margin:0 0 0 -6%;translate:none;pointer-events:none}
.sculpture-motion,.sculpture{height:auto}
.hero-copy>p{font-size:clamp(18px,1.55vw,24px);max-width:560px}
.hero:after{clip-path:polygon(0 95%,100% 0,100% 100%,0 100%)}
.tiny-note{font-size:15px;letter-spacing:0}
/* Desktop composition follows the available height, not just screen width. */
@media(min-width:761px){
  .hero{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100svh;min-height:0}
  .site-header{margin:0 auto;padding-block:clamp(14px,2.6svh,25px)}
  .site-header .icon-button{width:clamp(42px,6svh,50px);height:clamp(42px,6svh,50px)}
  .hero-body{height:100%;min-height:0;grid-template-rows:minmax(0,1fr);margin:0 auto;padding-block:clamp(16px,2.2svh,28px)}
  .hero-copy{min-height:0}
  .hero h1{font-size:min(9.2vw,13svh,148px)}
  .hero-copy>p{font-size:clamp(17px,2.6svh,24px);line-height:1.35;margin:clamp(16px,2.8svh,28px) 0 clamp(18px,3svh,30px)}
  .hero .button{font-size:clamp(16px,2.4svh,24px);padding-block:clamp(13px,2.1svh,20px);padding-inline:clamp(24px,2.4vw,32px)}
  .hero-art{height:100%;min-height:0;align-self:stretch}
  .sculpture-motion,.sculpture{height:100%;max-height:100%}
  .sculpture{object-fit:contain}
  .hero-footer{margin:0 auto;padding-top:8px;padding-bottom:clamp(20px,3.4svh,36px)}
  .hero:after{height:18px}
}
@media(min-width:761px) and (max-height:650px){
  .site-header{padding-block:10px}
  .hero-copy>p{font-size:16px;line-height:1.3;margin:14px 0 16px}
  .hero .button{font-size:16px;padding-block:13px}
  .hero-footer{padding-top:6px;padding-bottom:20px;font-size:13px}
  .hero-footer a span{font-size:24px}
  .tiny-note{font-size:12px}
}
@media(min-width:761px) and (max-height:520px){
  .hero h1{font-size:min(9.2vw,10.6svh)}
  .hero-body{padding-block:12px}
  .hero-copy>p{font-size:15px;margin:10px 0 12px}
  .hero .button{padding-block:11px}
}
.universe{background:#181b1a;color:#f4f1e9;padding:65px var(--gutter) 78px;--mint:#b9f377;--rule:#f4f1e966}
.universe-inner{max-width:1584px;margin:auto}
.universe-heading{display:flex;align-items:baseline;justify-content:space-between;gap:35px;padding-bottom:32px;border-bottom:1.5px solid var(--rule)}
.universe-heading h2{font-size:clamp(50px,7.2vw,115px);font-weight:900;line-height:1;letter-spacing:-.045em}
.universe-heading>p{font-size:20px;line-height:1.3;max-width:350px}
.interests{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4%;padding-top:36px}
.interests h3{font-size:clamp(28px,3.9vw,62px);font-weight:900;line-height:1;letter-spacing:-.045em;margin-bottom:21px}
.interests p{font-size:clamp(18px,1.6vw,25px);line-height:1.4;letter-spacing:-.02em;max-width:440px}
.radar{font:16px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.015em;padding:35px 0 28px;display:flex;align-items:baseline;gap:24px;flex-wrap:wrap}
.radar span{white-space:nowrap}
.number-lab{display:grid;grid-template-columns:50% 44%;gap:6%;border-top:1.5px solid var(--rule);padding-top:42px;align-items:start}
.number-story h3{font-size:clamp(56px,7.1vw,114px);font-weight:900;line-height:.88;letter-spacing:-.045em;margin:20px 0 30px}
.number-story p{font-size:clamp(18px,1.6vw,25px);line-height:1.4;letter-spacing:-.02em;max-width:580px}
.number-machine{min-width:0}
.power-output{display:block;font-size:clamp(160px,17vw,270px);font-weight:900;letter-spacing:-.06em;line-height:.92;color:var(--mint);padding:5px 0 14px;white-space:nowrap}
.power-output sup{font-size:.5em;line-height:0;letter-spacing:0;vertical-align:super;margin-left:.1em}
.power-summary{font:17px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:10px 0 22px;min-height:26px}
.number-controls{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.number-controls .button{font-size:21px;padding:18px 30px;letter-spacing:-.02em;min-height:63px}
.multiply-button{background:var(--mint);color:#181b1a;min-width:175px;border:1.5px solid var(--mint)}
.multiply-button:hover{background:#d6ffab}
.square-button{border:1.5px solid #f4f1e9;background:transparent;min-width:225px;color:#f4f1e9}
.square-button:hover{background:#f4f1e9;color:#181b1a}
.number-reset{width:63px;height:63px;padding:16px;color:#f4f1e9;flex-shrink:0}
.number-reset:hover{transform:rotate(-45deg)}
.number-controls button:disabled{opacity:.35;transform:none}
.number-expand{font:16px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-decoration:underline;text-underline-offset:5px;background:transparent;color:#f4f1e9;margin-top:25px;padding:6px 0}
.number-expand:hover{color:var(--mint)}
.full-number{font:15px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;word-break:break-all;max-height:180px;overflow-y:auto;scrollbar-gutter:stable;border-top:1px solid var(--rule);padding:16px 10px 0 0;margin-top:16px;color:var(--mint)}
.full-number:focus-visible{outline:2px solid var(--mint);outline-offset:5px}
.number-limit{font-size:15px;line-height:1.4;max-width:440px;color:var(--mint);margin-top:18px}
@media(max-width:1200px){.universe-heading>p{font-size:17px;max-width:270px}.number-controls .button{font-size:17px;padding:15px 20px;min-height:52px}.multiply-button{min-width:105px}.square-button{min-width:155px}.number-reset{width:52px;height:52px;padding:12px}.power-summary{font-size:14px}.radar{font-size:13px}}
@media(max-width:1000px){.interests{gap:3%}.interests h3{font-size:3.9vw}.interests p{font-size:18px}.universe-heading{gap:24px}.universe-heading>p{max-width:215px;font-size:16px}.number-controls{gap:10px}.number-controls .button{font-size:15px;padding:14px 18px;min-height:46px}.multiply-button{min-width:80px}.square-button{min-width:132px}.number-reset{width:46px;height:46px;padding:11px}.number-story h3{font-size:7.1vw}.power-output{font-size:17vw}.number-story p{font-size:19px}}
@media(max-width:760px){.wordmark{font-size:34px}.hero-art{top:auto;bottom:auto;right:auto;width:100%;height:auto;margin:5px auto 0}.hero-copy>p{font-size:19px}.tiny-note{font-size:10px;max-width:130px}.universe{padding-top:40px;padding-bottom:50px}.universe-heading{display:block;padding-bottom:25px}.universe-heading h2{font-size:clamp(34px,7.4vw,56px);letter-spacing:-.045em}.universe-heading>p{font-size:17px;margin-top:18px;max-width:none}.interests{grid-template-columns:1fr;gap:30px;padding-top:28px}.interests h3{font-size:38px;letter-spacing:-.035em;margin-bottom:12px}.interests p{font-size:19px;max-width:520px}.radar{font-size:12px;gap:8px;display:block;padding:28px 0 24px;line-height:1.8}.radar span{display:block;margin-bottom:8px}.number-lab{grid-template-columns:1fr;gap:28px;padding-top:25px}.number-story h3{font-size:clamp(54px,11vw,80px);margin:8px 0 22px}.number-story p{font-size:19px;max-width:450px}.number-machine{max-width:520px}.power-output{font-size:clamp(100px,34vw,220px);padding-bottom:9px}.power-summary{font-size:14px;margin:12px 0 20px}.number-controls{gap:10px}.number-controls .button{font-size:16px;min-height:49px;padding:15px 20px}.multiply-button{min-width:87px}.square-button{min-width:142px}.number-reset{width:49px;height:49px;padding:12px}.number-expand{font-size:14px;margin-top:22px}.full-number{font-size:13px;max-height:160px}}
@media(max-width:370px){.wordmark{font-size:31px}.hero-copy>p{font-size:17px}.universe-heading h2{font-size:7.5vw}.number-controls{gap:8px}.number-controls .button{font-size:14px;padding:13px 15px;min-height:44px}.multiply-button{min-width:72px}.square-button{min-width:130px}.number-reset{width:44px;height:44px;padding:10px}}
