/* Shared atmosphere, native scroll, and quiet chapter transitions. Typography stays in readability.css. */
:root{--chapter-offset:100px;scroll-padding-top:var(--chapter-offset);scroll-behavior:smooth}
body{isolation:isolate;background:#0a142b}
.shared-sky{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:linear-gradient(180deg,#09182ccb,#0a142be8),url('./assets/night-sky.webp') 50% 50%/cover}
.sky-glow{position:absolute;inset:-10%;background:radial-gradient(ellipse at 80% 35%,#39597a55,transparent 58%),radial-gradient(ellipse at 15% 75%,#ad88452b,transparent 45%);transition:opacity .7s;opacity:.8}
.sky-orbit{position:absolute;width:110vw;height:120vh;border:1px solid #e6c58b20;border-radius:50%;left:36vw;top:6vh;transform:rotate(-28deg)}
:root[data-chapter="learning"] .sky-glow{opacity:.35}
.work-section,.skills-section,.journey-section,.learning-section{background:transparent;position:relative}
.work-section{background:linear-gradient(180deg,#0a142b 0,transparent 280px)}
.hero-vignette{background:linear-gradient(180deg,#08112512,#0a142b12 55%,#0a142b 100%)}
.section-space{position:relative}
main > section[id]{scroll-margin-top:0}
.project,.timeline article{scroll-margin-top:var(--chapter-offset)}
.about-section{background:linear-gradient(180deg,#172b3d 0,#1a3442 150px,#1a3442 calc(100% - 160px),#172b3d 100%);margin-block:40px;isolation:isolate;overflow:visible;color:#edf0f4;color-scheme:dark}
.about-section:before,.about-section:after{content:"";position:absolute;left:0;right:0;height:110px;pointer-events:none;z-index:-1}
.about-section:before{top:-109px;background:linear-gradient(180deg,transparent,#172b3d)}
.about-section:after{bottom:-109px;background:linear-gradient(180deg,#172b3d,transparent)}
.about-grid{position:relative}
.about-section h2 .serif{color:#e5cc9f}
.about-section .about-lead{color:#edf0f4}
.about-section .about-content>p:not(.about-lead){color:#d0dce5}
.about-section .eyebrow,.about-section .eyebrow>span{color:#dfc99f}
.about-section .eyebrow>span{border-color:#b1bfa866}
.about-section .about-facts{border-color:#a1b9c33d}
.about-section .about-facts span{color:#bcced9}
.about-section .about-facts strong{color:#e0e8ee}
.about-section .signature,.about-section .scribble{color:#dfc99f}
.about-section .orbit{border-color:#aec5cb40}
.thinking-stage:before{content:"";position:absolute;inset:8% 8% 0;border-radius:50%;background:radial-gradient(ellipse,#68889022,transparent 68%);pointer-events:none}
.skills-section{padding-top:160px}
.skills-section:after{content:"";position:absolute;left:calc(50% - 1px);bottom:-25px;width:1px;height:70px;background:linear-gradient(transparent,#dfc58b99,transparent)}
.journey-section{padding-bottom:65px}
.learning-section{padding-top:65px;padding-bottom:160px}
.learning-section:before{content:"✦";position:absolute;left:calc(50% - 20px);top:-24px;width:40px;text-align:center;color:#d8bd87;font-size:20px}
.contact-section{overflow:visible;background:linear-gradient(180deg,#15273b,#1b3045 150px);color:#edf0f4;color-scheme:dark}
.contact-section:before{content:"";position:absolute;height:110px;top:-109px;left:0;right:0;background:linear-gradient(180deg,transparent,#15273b);pointer-events:none}
.contact-section:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 82% 65%,#78929615,transparent 48%)}
.contact-section .eyebrow,.contact-section .eyebrow>span{color:#dfc99f}
.contact-section .eyebrow>span{border-color:#b1bfa866}
.contact-section h2 .serif{color:#e5cc9f}
.contact-section .contact-copy>p:not(.eyebrow){color:#d0dce5}
.contact-section .contact-email{color:#f1e4c9;border-color:#c5d2dd66}
.contact-section .contact-email:hover{color:#fff4db}
.contact-section .contact-links,.contact-section .contact-links>button{color:#c9d9e5}
.contact-section .contact-note,.contact-section .contact-star{color:#dfc99f}
.contact-section .contact-orbit{border-color:#aec5cb40}
.contact-inner{overflow:hidden}
#star-trail{position:fixed;inset:0;width:100%;height:100%;z-index:8;pointer-events:none;user-select:none;display:none}
#star-trail[data-state="active"]{display:block}
.motion-off #star-trail,.view-quick #star-trail{display:none!important}
.reading-toolbar{background:#102039ed}
.chapter-progress{height:2px;background:#71839b33;overflow:hidden}
.chapter-progress span{display:block;width:100%;height:100%;background:#e6c58b;transform:scaleX(0);transform-origin:left}
.reading-inner nav a{position:relative}
.reading-inner nav a:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .25s;transform-origin:left}
.reading-inner nav a[aria-current]:after{transform:scaleX(1)}
.transcript-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.transcript-card{border:1px solid #778aa066;border-radius:10px;overflow:hidden;background:#12233ae8;min-width:0}
.transcript-cover{height:240px;background:linear-gradient(135deg,#d4d9cb,#b4bfae);position:relative;padding:28px 34px 0;overflow:hidden;display:flex;justify-content:center;align-items:flex-start}
.transcript-cover img{width:auto;max-width:100%;height:auto;max-height:none;display:block;box-shadow:0 8px 30px #13233133;transform:rotate(-3deg);object-fit:contain}
.transcript-card:nth-child(2) .transcript-cover img{transform:rotate(3deg);max-width:65%}
.transcript-cover>span{position:absolute;right:16px;bottom:16px;font-size:14px;padding:7px 12px;background:#0c1e32;color:#f2e5ca;border-radius:30px}
.transcript-copy{padding:28px 30px 30px}
.transcript-meta{font-size:14px;color:#e2c994;margin:0 0 10px}
.transcript-copy h3{font-size:26px;font-weight:500;line-height:1.5;margin:0 0 6px}
.transcript-copy p:not(.transcript-meta){font-size:16px;line-height:1.85;color:#d1daea;margin:12px 0}
.transcript-copy .transcript-major{color:#f0e4cd!important;margin-top:0!important}
.transcript-copy .transcript-note{color:#bfcddd!important;font-size:14px!important}
.transcript-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin-top:22px}
.public-copy-note{color:#c8d2e1;font-size:14px;line-height:1.85;max-width:66em;margin:24px 0 0}
#transcript-dialog{width:min(1050px,calc(100% - 32px));max-height:92svh;padding:24px;overflow:auto}
#transcript-dialog[open]{display:flex;flex-direction:column;height:min(900px,92svh);overflow:hidden}
.transcript-dialog-header,.transcript-controls,#transcript-description,.preview-instruction{flex-shrink:0}
#transcript-dialog .transcript-viewport{flex:1;min-height:100px;height:auto}
.learning-section h2 .serif{display:inline-block}
.transcript-dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.transcript-dialog-header .eyebrow{font-size:13px;margin:0}
#transcript-title{font-size:25px;line-height:1.5;margin:8px 0 12px}
#transcript-description{font-size:16px;color:#d1dbea;line-height:1.75;margin:0 0 16px}
.transcript-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;position:sticky;top:-24px;z-index:2;background:#122039;padding:12px 0;border-block:1px solid #60718c66}
.transcript-controls button{min-height:44px;min-width:44px;background:#203551;border:1px solid #73849b;color:#f0e6d4;font-size:16px;border-radius:4px;padding:8px 14px}
.transcript-controls button:disabled{opacity:.45;cursor:default}
#transcript-zoom-label{font-size:14px;min-width:76px;text-align:center}
#transcript-download{margin-left:auto;font-size:14px;min-height:44px;padding:9px 15px}
.preview-instruction{font-size:14px;color:#c8d2e3;line-height:1.75;margin:12px 0}
.transcript-viewport{height:min(62svh,700px);overflow:auto;background:#d4d7d2;border:1px solid #8190a2;overscroll-behavior:contain}
.transcript-viewport img{display:block;max-width:none;width:100%;height:auto;vertical-align:top}
.view-quick{scroll-behavior:auto}
.view-quick .shared-sky{display:none}
.view-quick .about-section{margin:0;background:#1a3442}
.view-quick .about-section:before,.view-quick .about-section:after,.view-quick .skills-section:after,.view-quick .learning-section:before,.view-quick .contact-section:before{display:none}
.view-quick .transcript-cover{display:none}
.view-quick .learning-section{padding-block:48px}
.view-quick .contact-section{background:#1b3045}
.motion-off{scroll-behavior:auto}
@media(max-width:820px){.sky-orbit{display:none}.sky-glow{transform:none!important}.skills-section{padding-top:115px}.transcript-grid{gap:22px}.transcript-copy{padding:23px}.transcript-cover{height:210px;padding-inline:25px}.learning-section{padding-bottom:130px}.about-section{margin-block:30px}}
@media(max-width:600px){:root{--chapter-offset:112px}.reading-inner nav a{gap:3px}.reading-inner nav a>span{display:none}.reading-inner nav{gap:8px}.transcript-grid{grid-template-columns:1fr}.transcript-cover{height:190px}.transcript-card:nth-child(2) .transcript-cover img{max-width:60%}.transcript-copy{padding:23px}.transcript-copy h3{font-size:24px}.transcript-actions{gap:8px 18px}.transcript-copy p:not(.transcript-meta){font-size:16px}.learning-section{padding-top:50px;padding-bottom:110px}.journey-section{padding-bottom:50px}.skills-section{padding-top:95px}.about-section:before,.about-section:after,.contact-section:before{height:75px}.about-section:before,.contact-section:before{top:-74px}.about-section:after{bottom:-74px}.about-section{margin-block:20px}.about-section{background:linear-gradient(180deg,#172b3d,#1a3442 90px,#1a3442 calc(100% - 90px),#172b3d)}#transcript-dialog{padding:16px;width:calc(100% - 16px)}#transcript-title{font-size:22px}#transcript-description{font-size:16px}.transcript-controls{top:-16px;gap:8px}.transcript-controls button{font-size:14px;padding:8px 10px}#transcript-zoom-label{min-width:70px}#transcript-download{margin-left:0;width:100%;justify-content:center}.transcript-viewport{height:54svh}.preview-instruction{font-size:14px}}
@media(prefers-reduced-motion:reduce){#star-trail{display:none!important}:root{scroll-behavior:auto}.sky-glow{transform:none!important}}
@media print{#star-trail,.shared-sky,.chapter-progress,.transcript-cover,.transcript-actions{display:none!important}.about-section,.contact-section{margin:0;background:#fff}.about-section:before,.about-section:after,.contact-section:before,.learning-section:before{display:none}.transcript-card{background:#fff;color:#111;border-color:#888;break-inside:avoid}.transcript-copy p,.public-copy-note{color:#222!important}.learning-section{padding-block:25px}}

@media(max-width:820px),(hover:none),(pointer:coarse){#star-trail{display:none!important}}
@media print{.about-section h2 .serif,.contact-section h2 .serif,.about-section .about-lead,.about-section .about-facts span,.about-section .about-facts strong,.about-section .eyebrow,.about-section .signature,.contact-section .contact-email,.contact-section .contact-links,.contact-section .eyebrow{color:#222!important}.contact-section:after{display:none}}

/* A native cursor with a visible horn hotspot. Semantic controls retain familiar cursors. */
:root{--moon-cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M19%203C10%200%202%207%203%2016C4%2025%2015%2030%2023%2024C13%2025%207%2015%2011%208C13%205%2016%204%2019%203Z%22%20fill%3D%22%23f1d69f%22%20stroke%3D%22%23283f58%22%20stroke-width%3D%221.2%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%223%22%20r%3D%221%22%20fill%3D%22%23fff4d9%22%2F%3E%3C%2Fsvg%3E") 19 3, auto}
@media(hover:hover) and (pointer:fine) and (min-width:821px) and (prefers-reduced-motion:no-preference){
  :root:not(.motion-off):not(.view-quick) body{cursor:var(--moon-cursor)}
}
a[href],button,[role="button"],summary,label[for]{cursor:pointer}
p,li,dd,dt,h1,h2,h3,h4,figcaption,blockquote,output,textarea,input:not([type]),input[type="text"],input[type="email"],[contenteditable="true"]{cursor:text}
.about-facts,.signature,.tech-tags,.hero-tags,.contact-note,.hero-coordinate{cursor:text}
button:disabled,[aria-disabled="true"]{cursor:not-allowed}
.transcript-viewport,.transcript-viewport img,#photo-large{cursor:auto}
#open-photo{cursor:zoom-in}
.about-personal{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:26px;align-items:center;margin-top:32px}
.about-personal .about-facts{margin-top:0}
.personal-facts{min-width:0}
.personal-photo{margin:0;padding:10px;border:1px solid #9cb4c15e;border-radius:10px;background:#10283a;box-shadow:0 12px 30px #04101d20}
#open-photo{display:block;width:100%;padding:0;background:transparent;border:0;border-radius:5px}
.personal-photo img{display:block;width:100%;height:auto;max-width:100%;border-radius:5px}
.personal-photo figcaption{padding-top:10px;text-align:center;color:#e5d1ad;line-height:1.6}
.personal-photo figcaption span{display:block;font-size:15px}
.personal-photo figcaption small{display:block;font-size:13px;color:#bfd0df;margin-top:3px}
#photo-dialog{width:min(620px,calc(100% - 32px));padding:20px 24px;max-height:90svh;overflow:auto}
#photo-dialog .dialog-top{gap:20px}
#photo-title{font-size:24px;line-height:1.5;margin:0}
#photo-large{display:block;max-width:100%;max-height:calc(84svh - 110px);width:auto;height:auto;margin:20px auto 0;border-radius:5px;object-fit:contain}
@media(max-width:600px){.about-personal{grid-template-columns:1fr;gap:26px}.personal-photo{width:min(260px,100%);justify-self:center}.personal-facts .signature{margin-top:24px}#photo-dialog{padding:18px;width:calc(100% - 24px)}#photo-title{font-size:22px}}
@media print{.personal-photo{display:none}.about-personal{display:block}}
