:root{color-scheme:dark;--bg:#071319;--bg-deep:#040c11;--surface:rgba(10,32,40,.88);--surface-strong:#0e2932;--paper:#eee8d8;--paper-ink:#25261f;--ink:#f1ecdf;--muted:#aebebb;--dim:#748a88;--line:rgba(209,181,126,.24);--gold:#ddb26d;--blue:#7fc4d0;--green:#8bc9a9;--red:#d98072;--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace;--shadow:0 28px 90px rgba(0,0,0,.3)}
html[data-theme=light]{color-scheme:light;--bg:#dce8df;--bg-deep:#c4dbd3;--surface:rgba(249,246,235,.9);--surface-strong:#f5f1e6;--ink:#26332f;--muted:#596d68;--dim:#74847f;--line:rgba(41,70,62,.2);--gold:#9b6636;--blue:#337f8d;--green:#427a5b;--red:#9b5147;--shadow:0 28px 80px rgba(33,63,57,.16)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;min-width:320px;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin-top:0}.skip-link{position:fixed;left:18px;top:-80px;z-index:100;padding:12px 16px;background:var(--paper);color:var(--paper-ink);font:11px var(--mono)}.skip-link:focus{top:16px}.kicker,.book-role,.book-number,.companion-index{font:9px/1.5 var(--mono);letter-spacing:.16em;text-transform:uppercase}

.library-atmosphere{position:fixed;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(180deg,var(--bg),var(--bg-deep));pointer-events:none}.library-atmosphere::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(28,101,111,.16),transparent 36%,rgba(222,174,102,.09) 67%,transparent)}.library-sun,.library-moon{position:absolute;right:8vw;top:122px;width:min(15vw,170px);aspect-ratio:1;border-radius:50%;transition:opacity .35s,transform .35s}.library-sun{background:radial-gradient(circle at 42% 40%,#fff4bc 0 12%,#f2c96f 36%,#dd9853 67%,rgba(216,137,74,.1) 72%);box-shadow:0 0 110px 40px rgba(241,187,91,.14);animation:sun-breathe 8s ease-in-out infinite}.library-moon{opacity:0;transform:translateY(-12px);background:radial-gradient(circle at 39% 38%,#fffde8 0 25%,#dae7dc 57%,#9fbbb1 100%);box-shadow:0 0 90px 25px rgba(188,221,212,.11)}html[data-theme=dark] .library-sun{opacity:0;transform:translateY(12px)}html[data-theme=dark] .library-moon{opacity:.9;transform:none}.star-field{position:absolute;inset:0;opacity:.55;background-image:radial-gradient(circle,#f9e7bd 0 1px,transparent 1.6px),radial-gradient(circle,#d6eef1 0 1px,transparent 1.6px);background-size:117px 131px,173px 157px;background-position:0 0,59px 73px;animation:stars-drift 28s linear infinite}.cloud{--cloud-scale:1;position:absolute;left:-280px;height:34px;width:210px;border-radius:50%;background:rgba(255,255,255,.27);filter:blur(1px);transform:scale(var(--cloud-scale));transform-origin:left center;animation:cloud-drift 34s linear infinite;will-change:transform}.cloud::before,.cloud::after{content:"";position:absolute;background:inherit;border-radius:50%}.cloud::before{width:92px;height:74px;left:34px;bottom:0}.cloud::after{width:115px;height:56px;right:21px;bottom:0}.cloud-a{top:180px}.cloud-b{--cloud-scale:.7;top:320px;animation-delay:-15s;animation-duration:47s;opacity:.6}.cloud-c{--cloud-scale:.42;top:242px;animation-delay:-30s;animation-duration:61s;opacity:.44}.cloud-d{--cloud-scale:.3;top:438px;animation-delay:-7s;animation-duration:73s;opacity:.34}html[data-theme=dark] .cloud{opacity:0}.wave-field{position:absolute;right:-8%;bottom:2%;left:38%;height:32vh;border:1px solid rgba(132,205,214,.1);border-right:0;border-left:0;border-radius:50%;transform:rotate(-5deg);box-shadow:0 -20px 0 rgba(113,187,195,.025),0 -40px 0 rgba(113,187,195,.018);animation:wave-breathe 9s ease-in-out infinite}

.library-header{position:fixed;inset:0 0 auto;z-index:30;height:76px;padding:0 clamp(18px,5vw,74px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.2);background-color:#0d2b33;background-image:linear-gradient(90deg,rgba(2,15,23,.92),rgba(7,39,45,.7)),linear-gradient(180deg,rgba(1,15,19,.15),rgba(1,15,19,.55)),url('/portfolio-website/assets/nav-coast/coastal-nav-night.webp');background-image:linear-gradient(90deg,rgba(2,15,23,.92),rgba(7,39,45,.7)),linear-gradient(180deg,rgba(1,15,19,.15),rgba(1,15,19,.55)),image-set(url('/portfolio-website/assets/nav-coast/coastal-nav-night.avif') type('image/avif'),url('/portfolio-website/assets/nav-coast/coastal-nav-night.webp') type('image/webp'));background-position:center;background-size:cover;box-shadow:0 10px 35px rgba(0,0,0,.24);color:#fff;text-shadow:0 1px 3px #000}.library-brand{display:flex;align-items:center;gap:12px;font:10px/1.25 var(--mono);letter-spacing:.17em}.library-brand b,.library-brand small{display:block}.library-brand small{font-size:8px;color:#e9ce93;letter-spacing:.2em;margin-top:3px}.library-mark{display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(244,215,158,.65);border-radius:50%;font-size:16px;color:#f1d292}.library-header nav{display:flex;align-items:center;gap:clamp(16px,2.2vw,34px);font:10px var(--mono);letter-spacing:.06em}.library-header nav a{position:relative;padding:10px 0}.library-header nav a:not(.is-current)::after{content:"";position:absolute;right:0;bottom:4px;left:0;height:1px;background:#f1d292;transform:scaleX(0);transform-origin:right;transition:transform .2s}.library-header nav a:is(:hover,:focus-visible)::after{transform:scaleX(1);transform-origin:left}.library-header nav .is-current{color:#f2d391}.library-theme{display:flex;align-items:center;gap:6px;min-height:34px;border:1px solid rgba(255,255,255,.38);border-radius:99px;padding:6px 10px;background:rgba(0,0,0,.25);color:#fff;font:8px var(--mono);letter-spacing:.08em}.library-theme .theme-icon{font-size:13px;color:#f2d391}.library-theme:is(:hover,:focus-visible){background:rgba(0,0,0,.52);border-color:#f2d391}.library-header :is(a,button):focus-visible,.library-hero a:focus-visible,.read-link:focus-visible,.text-link:focus-visible,.search-control :focus-visible,.reader-dialog :focus-visible,.library-footer a:focus-visible{outline:2px solid #f1d292;outline-offset:4px}

.library-hero{min-height:max(720px,100svh);padding:clamp(144px,16vh,180px) clamp(22px,8vw,130px) 80px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.library-hero::after{content:"";position:absolute;right:clamp(20px,8vw,130px);top:27%;width:min(31vw,430px);aspect-ratio:1;border:1px solid rgba(218,181,116,.3);border-radius:50%;box-shadow:0 0 0 42px rgba(120,192,199,.045),0 0 0 84px rgba(218,181,116,.027),0 0 0 126px rgba(120,192,199,.018);animation:hero-orbit 22s linear infinite}.kicker{color:#d8b77b;font:9px/1.5 var(--mono);letter-spacing:.18em;text-transform:uppercase}.library-hero .kicker{max-width:720px}.library-hero h1{position:relative;z-index:1;max-width:1080px;margin:30px 0 32px;font:clamp(58px,8.5vw,126px)/.86 var(--serif);font-weight:400;letter-spacing:-.06em}.library-hero h1 em{color:#d9b16d;font-weight:400}.library-lede{position:relative;z-index:1;max-width:650px;margin-bottom:30px;color:var(--muted);font-size:clamp(15px,1.35vw,18px);line-height:1.8}.library-jump{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:14px}.library-jump a{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-width:240px;border:1px solid var(--line);padding:15px 18px;background:color-mix(in srgb,var(--surface) 75%,transparent);font:10px var(--mono);letter-spacing:.04em;transition:border-color .2s,transform .2s,background .2s}.library-jump a:first-child{background:#d9b16d;border-color:#d9b16d;color:#142127}.library-jump a:is(:hover,:focus-visible){border-color:#d9b16d;transform:translateY(-2px)}.library-jump a:first-child:is(:hover,:focus-visible){background:#f0ce8c}.reading-note{position:relative;z-index:1;display:flex;align-items:flex-start;gap:16px;max-width:630px;margin-top:34px;padding-top:20px;border-top:1px solid var(--line);color:var(--dim);font-size:11px;line-height:1.75}.reading-note>span{color:#d9b16d;font-size:20px}.reading-note p{margin:0}.reading-note strong{color:var(--ink);font-weight:500}

.library-find,.book-spiral,.companions{width:min(1240px,calc(100% - 44px));margin:0 auto;padding:110px 0}.library-find{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);gap:clamp(35px,8vw,120px);align-items:end;border-top:1px solid var(--line)}.library-find h2,.section-head h2,.collection-section h2,.library-exit h2{font:clamp(44px,5vw,76px)/.97 var(--serif);font-weight:400;letter-spacing:-.045em}.library-find h2{max-width:430px;margin:20px 0 0}.search-shell label{display:block;margin-bottom:12px;color:var(--muted);font:10px var(--mono);letter-spacing:.05em}.search-control{display:flex;align-items:stretch;border-bottom:1px solid var(--gold)}.search-control input{flex:1;min-width:0;border:0;padding:15px 0;background:transparent;color:var(--ink);font:clamp(18px,2.2vw,28px) var(--serif);outline:0}.search-control input::placeholder{color:var(--dim);opacity:.8}.search-control button{border:0;padding:0 5px 0 18px;background:transparent;color:var(--gold);font:9px var(--mono);letter-spacing:.08em}.search-status{margin:12px 0 0;color:var(--dim);font:9px var(--mono);letter-spacing:.06em}

.library-gateway{width:min(1120px,calc(100% - 44px));margin:36px auto 0;display:grid;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);align-items:center;gap:clamp(28px,6vw,80px)}.gateway-art{margin:0;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}.gateway-art img{width:100%;height:auto}.gateway-copy h2{margin:20px 0;font:clamp(54px,6.8vw,90px)/.9 var(--serif);font-weight:400;letter-spacing:-.05em}.gateway-copy>p:not(.kicker){max-width:530px;color:var(--muted);font-size:16px;line-height:1.85}.read-link{display:inline-flex;align-items:center;gap:26px;min-height:48px;padding:13px 16px;border:1px solid var(--gold);color:var(--gold);font:10px var(--mono);letter-spacing:.05em;transition:background .2s,color .2s,transform .2s}.read-link span{font-size:8px;letter-spacing:.08em}.read-link:is(:hover,:focus-visible){background:var(--gold);color:var(--bg-deep);transform:translateY(-2px)}

.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.46fr);gap:20px 50px;align-items:end;margin-bottom:62px}.section-head .kicker{grid-column:1/-1}.section-head h2{margin:0}.section-head h2 em{color:var(--gold);font-weight:400}.section-head>p:last-child{align-self:end;margin:0 0 8px;color:var(--muted);font-size:13px;line-height:1.8}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:64px 26px}.book-card{position:relative;min-width:0;transition:opacity .25s,transform .25s}.book-card[hidden],.collection-section[hidden],.companion-card[hidden]{display:none}.book-cover{position:relative;display:block;overflow:hidden;border-radius:5px 13px 13px 5px;background:#0b171c;box-shadow:0 22px 45px rgba(0,0,0,.23),8px 0 12px rgba(0,0,0,.15);transition:transform .25s,box-shadow .25s}.book-cover::after{content:"";position:absolute;inset:0 0 0 7px;border-left:2px solid rgba(255,255,255,.2);background:linear-gradient(90deg,rgba(0,0,0,.22),transparent 9%,transparent 76%,rgba(255,255,255,.08));pointer-events:none}.book-cover img{display:block;width:100%;height:auto;max-height:660px;object-fit:contain;object-position:center}.book-cover:is(:hover,:focus-visible){transform:translateY(-9px) rotate(-.5deg);box-shadow:0 35px 65px rgba(0,0,0,.33),8px 0 12px rgba(0,0,0,.18)}.cover-action{position:absolute;right:10px;bottom:10px;z-index:2;padding:8px 10px;background:rgba(4,15,19,.84);color:#f2d79e;font:8px var(--mono);letter-spacing:.06em;opacity:0;transform:translateY(7px);transition:.22s}.book-cover:is(:hover,:focus-visible) .cover-action{opacity:1;transform:none}.book-number{position:absolute;top:12px;left:15px;z-index:2;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(5,16,20,.84);color:#f2d79e;font-size:9px}.book-role{margin:22px 0 8px;color:var(--gold)}.book-card h3{margin:0 0 7px;font:clamp(25px,2.3vw,34px)/1.02 var(--serif);font-weight:400;letter-spacing:-.03em}.book-subtitle{min-height:42px;margin:0 0 13px;color:var(--ink);font:italic 12px/1.5 var(--serif);opacity:.88}.book-description{min-height:58px;margin-bottom:20px;color:var(--muted);font-size:12px;line-height:1.7}.text-link{display:inline-flex;align-items:center;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--line);color:var(--ink);font:9px var(--mono);letter-spacing:.04em}.text-link span{color:var(--gold)}.text-link:is(:hover,:focus-visible){color:var(--gold);border-color:var(--gold)}.book-card.featured{padding:20px;border:1px solid rgba(86,164,181,.45);background:linear-gradient(145deg,rgba(23,76,89,.38),rgba(10,30,37,.68));box-shadow:inset 0 0 40px rgba(80,169,187,.06)}.book-card.featured .book-role{color:var(--blue)}.book-thread{position:absolute;top:-17px;right:0;left:0;height:8px;border:1px solid rgba(100,188,203,.5);border-radius:99px;box-shadow:0 0 18px rgba(82,176,196,.25)}.book-thread::after{content:"ATTENTION";position:absolute;right:13px;top:-8px;padding:1px 7px;background:var(--bg);color:var(--blue);font:7px var(--mono);letter-spacing:.12em}

.collection-section{width:min(1120px,calc(100% - 44px));margin:80px auto 0;padding:80px clamp(26px,6vw,80px);display:grid;grid-template-columns:minmax(220px,.7fr) minmax(300px,1.3fr);gap:clamp(35px,8vw,100px);align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(110deg,rgba(36,83,90,.2),rgba(13,32,39,.06))}.collection-cover{max-width:360px}.collection-cover a{display:block;border-radius:6px 14px 14px 6px;overflow:hidden;box-shadow:var(--shadow);transition:transform .25s}.collection-cover a:is(:hover,:focus-visible){transform:translateY(-6px) rotate(1deg)}.collection-section h2{margin:18px 0 27px}.collection-section h2 em,.library-exit h2 em{color:var(--gold);font-weight:400}.collection-section>div>p:not(.kicker){max-width:520px;color:var(--muted);line-height:1.8}.collection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:28px}.companions{padding-bottom:150px}.companion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.companion-card{position:relative;min-height:300px;padding:37px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(12,44,53,.82),rgba(8,22,28,.72));box-shadow:var(--shadow);overflow:hidden}.companion-card::after{content:"";position:absolute;right:-40px;bottom:-70px;width:230px;aspect-ratio:1;border:1px dotted var(--line);border-radius:50%;box-shadow:0 0 0 25px rgba(109,186,198,.04),0 0 0 50px rgba(217,177,109,.03)}.companion-index{color:var(--blue)}.companion-card h3{margin:26px 0 16px;font:clamp(31px,3vw,48px)/1 var(--serif);font-weight:400}.companion-card p{max-width:430px;color:var(--muted);line-height:1.8}.companion-card .read-link{position:relative;z-index:1;margin-top:12px}.empty-state{max-width:900px;margin:20px auto 100px;padding:38px;border:1px solid var(--line);text-align:center;color:var(--muted)}.empty-state button{border:0;border-bottom:1px solid var(--gold);padding:0;background:transparent;color:var(--gold)}

.library-exit{width:min(1200px,calc(100% - 44px));margin:0 auto 120px;display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);align-items:center;gap:clamp(30px,7vw,90px);padding:clamp(28px,5vw,74px);border:1px solid var(--line);border-radius:30px;background:rgba(5,19,25,.27)}.library-exit figure{margin:0;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}.library-exit h2{margin:18px 0 24px}.library-exit>div>p:not(.kicker){max-width:480px;color:var(--muted);line-height:1.8;margin-bottom:28px}
.library-footer{padding:36px clamp(22px,6vw,80px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--dim);font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase}.library-footer nav{display:flex;gap:12px;flex-wrap:wrap}.library-footer a{border-bottom:1px solid transparent}.library-footer a:hover{color:var(--gold);border-color:var(--gold)}

.reader-dialog{width:min(1380px,calc(100vw - 28px));height:min(940px,calc(100dvh - 28px));max-width:none;max-height:none;margin:auto;padding:0;border:1px solid rgba(230,197,132,.48);border-radius:18px;background:#0a1112;color:#eee9dd;box-shadow:0 45px 150px rgba(0,0,0,.75);overflow:hidden}.reader-dialog::backdrop{background:rgba(2,7,9,.88);backdrop-filter:blur(9px)}.reader-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) 3px auto;height:100%;background:#0b1112}.reader-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#10191a}.reader-back,.reader-download,.reader-toolbar button,.reader-footer button{min-height:38px;border:1px solid rgba(255,255,255,.15);padding:8px 12px;background:rgba(255,255,255,.03);color:#eee9dd;font:9px var(--mono);letter-spacing:.04em}.reader-back:is(:hover,:focus-visible),.reader-download:is(:hover,:focus-visible),.reader-toolbar button:is(:hover,:focus-visible),.reader-footer button:is(:hover,:focus-visible){border-color:#d9b16d;color:#f2d79e;background:rgba(217,177,109,.08)}.reader-title-block{text-align:center;min-width:0}.reader-title-block p{margin:0 0 4px;color:#d9b16d;font:8px var(--mono);letter-spacing:.14em}.reader-title-block h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:clamp(20px,2.5vw,31px)/1.05 var(--serif);font-weight:400}.reader-title-block span{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#97a7a5;font:italic 10px var(--serif)}.reader-download{display:inline-flex;align-items:center;gap:8px}.reader-toolbar{display:flex;align-items:center;gap:24px;padding:10px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#0d1516;font:9px var(--mono);color:#9dacaa}.reader-control-group{display:flex;align-items:center;gap:4px}.reader-control-group>span{margin-right:6px;letter-spacing:.08em;text-transform:uppercase}.reader-toolbar button{min-height:30px;padding:5px 9px}.reader-toolbar button[aria-pressed=true]{border-color:#d9b16d;background:#d9b16d;color:#101715}.reader-hint{margin:0 0 0 auto;color:#6f817e;font-size:8px;letter-spacing:.04em}.reader-stage{position:relative;display:grid;place-items:start center;overflow:auto;padding:22px;background:#0b1112;overscroll-behavior:contain}.reader-paper{--reader-font-size:1.12rem;position:relative;z-index:2;width:min(920px,100%);margin:0 auto;padding:clamp(30px,5vw,66px) clamp(24px,6vw,78px) 48px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(7,17,20,.84);box-shadow:0 22px 70px rgba(0,0,0,.36);backdrop-filter:blur(12px);color:#f0eadc;font:var(--reader-font-size)/1.82 var(--serif);overflow-wrap:anywhere}.reader-page-marker{margin:0 0 clamp(20px,4vw,34px) !important;color:#d9b16d;font:9px var(--mono);letter-spacing:.16em;text-transform:uppercase}.reader-copy>h2{margin:1.4em 0 .55em;color:inherit;font:1.55em/1.12 var(--serif);font-weight:400;letter-spacing:-.025em}.reader-copy>h2:first-child{margin-top:0}.reader-copy p{margin:0 0 1.15em}.reader-copy ul{margin:.5em 0 1.3em;padding-left:1.45em}.reader-copy li{margin:.35em 0;padding-left:.2em}.reader-copy .reader-caption{margin:1.5em 0;padding-left:1em;border-left:2px solid rgba(217,177,109,.62);color:inherit;font-size:.88em;font-style:italic;opacity:.82}.reader-dialog[data-reading-tone=paper] .reader-paper{border-color:rgba(30,55,45,.18);background:rgba(255,252,245,.91);color:#22251f;box-shadow:0 22px 70px rgba(38,53,45,.2)}.reader-dialog[data-reading-tone=paper] .reader-page-marker{color:#8b6733}.reader-message{position:absolute;z-index:3;top:50%;left:50%;width:min(500px,85%);margin:0;transform:translate(-50%,-50%);text-align:center;color:#9fb0ad;font:12px/1.7 var(--mono);pointer-events:none}.reader-message.is-error{color:#f0aa9e}.reader-atmosphere{position:absolute;inset:0;z-index:1;pointer-events:none;transition:background .3s}.reader-dialog[data-atmosphere=off] .reader-atmosphere{display:none}.reader-dialog[data-atmosphere=day] .reader-atmosphere{background:linear-gradient(160deg,#d5e6e1,#bad7d0 58%,#83b1ad);display:block}.reader-dialog[data-atmosphere=day] .reader-atmosphere::before{content:"";position:absolute;right:5%;top:6%;width:130px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 36%,#fff7c7,#f2c676 62%,rgba(239,190,99,.12) 66%);box-shadow:0 0 70px 25px rgba(242,198,118,.18)}.reader-dialog[data-atmosphere=night] .reader-atmosphere{display:block;background:radial-gradient(circle at 74% 18%,rgba(107,146,151,.23),transparent 32%),linear-gradient(160deg,#0c2630,#07151b 70%,#121d1d)}.reader-dialog[data-atmosphere=night] .reader-atmosphere::before{content:"";position:absolute;inset:0;opacity:.5;background-image:radial-gradient(circle,#f2dda7 0 1px,transparent 1.5px),radial-gradient(circle,#b8dce1 0 1px,transparent 1.5px);background-size:89px 101px,143px 127px;background-position:0 0,41px 53px}.reader-dialog[data-reading-tone=paper]{background:#e8e3d6;color:#22251f}.reader-dialog[data-reading-tone=paper] .reader-shell,.reader-dialog[data-reading-tone=paper] .reader-toolbar{background:#e8e3d6;color:#34423e}.reader-dialog[data-reading-tone=paper] .reader-head{background:#f1ede2;border-color:rgba(31,48,40,.15)}.reader-dialog[data-reading-tone=paper] .reader-title-block h2,.reader-dialog[data-reading-tone=paper] .reader-back,.reader-dialog[data-reading-tone=paper] .reader-download,.reader-dialog[data-reading-tone=paper] .reader-footer button,.reader-dialog[data-reading-tone=paper] .reader-toolbar button{color:#2c3b36}.reader-dialog[data-reading-tone=paper] .reader-back,.reader-dialog[data-reading-tone=paper] .reader-download,.reader-dialog[data-reading-tone=paper] .reader-footer button,.reader-dialog[data-reading-tone=paper] .reader-toolbar button{border-color:rgba(30,55,45,.2);background:rgba(255,255,255,.3)}.reader-dialog[data-reading-tone=paper] .reader-stage{background:#d7d2c5}.reader-dialog[data-reading-tone=paper] .reader-toolbar button[aria-pressed=true]{background:#395f53;color:#fff;border-color:#395f53}.reader-progress{background:#1c2d2e}.reader-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#d9b16d,#76c1ca);transition:width .2s}.reader-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 20px;border-top:1px solid rgba(255,255,255,.1);background:#10191a}.reader-page-nav,.reader-zoom{display:flex;align-items:center;gap:7px}.reader-page-nav label{display:flex;align-items:center;gap:6px;margin:0 8px;color:#aab6b4;font:9px var(--mono)}.reader-page-nav input{width:48px;height:32px;border:1px solid rgba(255,255,255,.18);background:#091011;color:#eee9dd;text-align:center;font:10px var(--mono)}.reader-footer button:disabled{opacity:.34;cursor:not-allowed}.reader-dialog[data-reading-tone=paper] .reader-footer{background:#ece7da;border-color:rgba(30,55,45,.16)}.reader-dialog[data-reading-tone=paper] .reader-page-nav label{color:#53615c}.reader-dialog[data-reading-tone=paper] .reader-page-nav input{background:#fff;color:#26332e;border-color:rgba(30,55,45,.2)}.reader-dialog[data-reading-tone=paper] .reader-progress{background:#cfc9bc}

@keyframes sun-breathe{50%{transform:scale(1.05);filter:brightness(1.07)}}@keyframes stars-drift{to{background-position:117px 131px,232px 230px}}@keyframes cloud-drift{from{transform:translateX(0) scale(var(--cloud-scale))}to{transform:translateX(calc(100vw + 500px)) scale(var(--cloud-scale))}}@keyframes wave-breathe{50%{transform:rotate(-3deg) translateY(-14px);opacity:.7}}@keyframes hero-orbit{to{transform:rotate(360deg)}}
@media(max-width:980px){.book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.library-hero::after{right:-8vw;top:32%;width:40vw}.section-head{grid-template-columns:1fr}.section-head .kicker{grid-column:auto}.section-head>p:last-child{max-width:580px}.library-find{grid-template-columns:1fr;align-items:start}.library-find h2{max-width:620px}.library-gateway{grid-template-columns:minmax(250px,.8fr) minmax(280px,1.2fr)}.collection-section{grid-template-columns:minmax(210px,.7fr) minmax(260px,1.3fr)}.reader-toolbar{flex-wrap:wrap;gap:9px 18px}.reader-hint{margin-left:0}}
@media(max-width:760px){.library-header{height:68px}.library-header nav{gap:12px}.library-header nav a[href*="lens-of-everything"],.library-header nav a[href*="/memory-app/"],.library-header nav a[href="/"]{display:none}.library-header nav a:first-of-type{display:inline-flex}.library-theme{padding:5px 8px}.library-hero{min-height:700px;padding-top:126px}.library-hero h1{font-size:clamp(54px,13vw,88px)}.library-lede{max-width:92%}.library-hero::after{width:62vw;right:-22vw;top:30%;opacity:.65}.library-gateway{grid-template-columns:1fr}.gateway-copy{padding:0 3vw}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:52px 20px}.book-card h3{font-size:clamp(25px,5.8vw,34px)}.collection-section{grid-template-columns:1fr}.collection-cover{width:min(70vw,340px);margin:0 auto}.companion-grid{grid-template-columns:1fr}.library-exit{grid-template-columns:1fr}.library-exit figure{max-width:640px}.reader-dialog{width:100vw;height:100dvh;border:0;border-radius:0}.reader-head{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:11px 10px}.reader-back,.reader-download{padding:7px 8px;min-height:34px}.reader-back span,.reader-download span{display:none}.reader-toolbar{padding:8px 10px}.reader-hint{display:none}.reader-stage{padding:12px}.reader-footer{display:grid;gap:8px;padding:8px 10px}.reader-page-nav{justify-content:center}.reader-zoom{justify-content:center}.reader-zoom button{min-height:31px}.reader-dialog[data-reading-tone=paper] .reader-title-block span{color:#65726e}}
@media(max-width:520px){.library-header{padding:0 12px}.library-brand>span:last-child{display:none}.library-mark{width:29px;height:29px}.library-header nav{gap:10px;font-size:9px}.library-theme span:last-child{display:none}.library-theme{width:34px;justify-content:center}.library-hero{padding-right:18px;padding-left:18px}.library-hero h1{font-size:clamp(50px,15vw,72px)}.library-jump{display:grid}.library-jump a{min-width:0;width:100%}.reading-note{font-size:10px}.library-find,.book-spiral,.companions,.library-gateway,.collection-section,.library-exit{width:calc(100% - 28px)}.library-find,.book-spiral,.companions{padding-top:82px;padding-bottom:82px}.library-gateway{margin-top:0}.gateway-copy{padding:0}.book-grid{grid-template-columns:1fr;gap:62px}.book-card{max-width:390px;margin:0 auto;width:100%}.book-card.featured{padding:16px}.book-subtitle,.book-description{min-height:0}.book-cover img{max-height:590px;object-fit:contain;background:#071319}.collection-section{padding:58px 18px}.collection-actions{align-items:flex-start;flex-direction:column}.companion-card{padding:28px 22px}.library-exit{padding:20px 14px}.library-exit h2{font-size:clamp(48px,15vw,68px)}.library-footer{display:grid}.reader-head{grid-template-columns:auto minmax(0,1fr) auto}.reader-title-block{padding:0 4px}.reader-title-block p{display:none}.reader-title-block h2{font-size:18px}.reader-title-block span{display:none}.reader-back,.reader-download{font-size:8px}.reader-control-group{width:100%;justify-content:space-between}.reader-control-group button{flex:1}.reader-stage{padding:8px}.reader-page-nav label{margin:0 3px}.reader-page-nav button span{display:none}.reader-zoom button{padding:5px 8px;font-size:8px}}
/* Attention is the spiral's blue-expansion gateway: the book that teaches attending. */
.book-card.featured{border-color:rgba(110,175,255,.62);background:linear-gradient(145deg,rgba(24,119,242,.22),rgba(10,30,37,.72));box-shadow:inset 0 0 40px rgba(24,119,242,.08);animation:library-attention-breathe 3.8s ease-in-out infinite}.book-card.featured .book-role{color:#89bcff}.book-thread{border-color:rgba(110,175,255,.58);box-shadow:0 0 18px rgba(24,119,242,.36)}.book-thread::after{content:"MOST IMPORTANT · ATTENTION";color:#89bcff}@keyframes library-attention-breathe{0%,100%{box-shadow:inset 0 0 40px rgba(24,119,242,.08),0 0 0 1px rgba(24,119,242,.12),0 0 22px rgba(24,119,242,.16)}50%{box-shadow:inset 0 0 40px rgba(24,119,242,.12),0 0 0 6px rgba(24,119,242,.08),0 0 38px rgba(24,119,242,.32)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.library-sun,.star-field,.cloud,.wave-field,.library-hero::after,.book-card.featured{animation:none}.book-card.featured{box-shadow:inset 0 0 40px rgba(24,119,242,.1),0 0 0 4px rgba(24,119,242,.08),0 0 30px rgba(24,119,242,.22)}.book-cover,.library-jump a,.read-link{transition:none}.reader-progress span{transition:none}}

/* Library day sky: unmistakable blue, drifting birds and a passing plane; shooting stars at night. */
html[data-theme=light]{--bg:#9bd7f6;--bg-deep:#dff4ff}
html[data-theme=light] .library-atmosphere{background:radial-gradient(circle at 79% 15%,rgba(255,255,255,.68) 0 12%,transparent 30%),linear-gradient(180deg,#69bce9 0%,#9ed8f4 48%,#dff4ff 100%)}
html[data-theme=light] .library-atmosphere::before{background:linear-gradient(115deg,rgba(35,132,191,.2),transparent 38%,rgba(255,255,255,.18) 68%,transparent)}
html[data-theme=light] .star-field{opacity:0}
.day-plane{position:absolute;top:20%;left:-110px;z-index:1;color:#315a70;font:25px/1 'Segoe UI Symbol',sans-serif;opacity:0;filter:drop-shadow(0 2px 3px rgba(20,66,88,.22));animation:library-plane-pass 44s linear -11s infinite}
.day-plane::before{content:'✈';display:block;transform:rotate(-7deg)}
.bird-flock{position:absolute;left:-100px;top:29%;width:78px;height:34px;opacity:0;filter:drop-shadow(0 1px 1px rgba(20,66,88,.2));animation:library-flock-pass 38s linear -17s infinite}
.bird-flock-b{top:43%;width:94px;height:40px;animation-duration:51s;animation-delay:-33s;transform:scale(.78)}
.bird-flock i{position:absolute;display:block;width:14px;height:7px}
.bird-flock i::before,.bird-flock i::after{content:'';position:absolute;top:3px;width:8px;height:1.5px;border-radius:99px;background:#315a70}
.bird-flock i::before{left:0;transform:rotate(24deg);transform-origin:right center}
.bird-flock i::after{right:0;transform:rotate(-24deg);transform-origin:left center}
.bird-flock i:nth-child(1){left:3px;top:17px}.bird-flock i:nth-child(2){left:24px;top:5px}.bird-flock i:nth-child(3){left:47px;top:20px}.bird-flock i:nth-child(4){left:57px;top:0;transform:scale(.78)}
.shooting-star{position:absolute;top:12%;left:12%;z-index:1;width:130px;height:1px;opacity:0;background:linear-gradient(90deg,rgba(255,248,218,0),#fff8da 64%,#fff);filter:drop-shadow(0 0 7px rgba(255,238,174,.92));transform-origin:right center;animation:library-shooting-star 26s ease-in 5s infinite}
.shooting-star::after{content:'';position:absolute;right:-2px;top:-2px;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 12px 4px rgba(255,240,178,.72)}
.shooting-star-b{top:29%;left:46%;width:94px;animation-duration:37s;animation-delay:18s}.shooting-star-c{top:6%;left:64%;width:72px;animation-duration:43s;animation-delay:31s}
html[data-theme=light] .shooting-star{display:none}html[data-theme=dark] .day-plane,html[data-theme=dark] .bird-flock{display:none}
@keyframes library-plane-pass{0%,74%{transform:translate3d(0,0,0) rotate(-3deg);opacity:0}76%{opacity:.7}84%{transform:translate3d(78vw,2vh,0) rotate(2deg);opacity:.74}94%,100%{transform:translate3d(calc(100vw + 160px),-1vh,0) rotate(0);opacity:0}}
@keyframes library-flock-pass{0%,66%{transform:translate3d(0,0,0);opacity:0}69%{opacity:.72}86%{transform:translate3d(66vw,2vh,0);opacity:.68}98%,100%{transform:translate3d(calc(100vw + 140px),-1vh,0);opacity:0}}
@keyframes library-shooting-star{0%,72%{transform:translate3d(0,0,0) rotate(-31deg) scaleX(.25);opacity:0}73.5%{opacity:1}83%{transform:translate3d(46vw,28vh,0) rotate(-31deg) scaleX(1);opacity:.9}86%,100%{transform:translate3d(53vw,32vh,0) rotate(-31deg) scaleX(.4);opacity:0}}

/* The library header keeps the home page's coastal scenery visible behind a legibility veil. */
.library-header{border-bottom-color:rgba(255,255,255,.34);text-shadow:0 1px 2px rgba(0,0,0,.98),0 2px 7px rgba(0,0,0,.82)}
html[data-theme=dark] .library-header{background-color:#0d2b33;background-image:linear-gradient(90deg,rgba(2,12,24,.94) 0%,rgba(2,12,24,.55) 24%,rgba(2,12,24,.30) 50%,rgba(2,12,24,.70) 76%,rgba(2,12,24,.94) 100%),linear-gradient(180deg,rgba(0,8,20,.17),rgba(0,8,20,.38)),url('/portfolio-website/assets/nav-coast/coastal-nav-night.webp');background-image:linear-gradient(90deg,rgba(2,12,24,.94) 0%,rgba(2,12,24,.55) 24%,rgba(2,12,24,.30) 50%,rgba(2,12,24,.70) 76%,rgba(2,12,24,.94) 100%),linear-gradient(180deg,rgba(0,8,20,.17),rgba(0,8,20,.38)),image-set(url('/portfolio-website/assets/nav-coast/coastal-nav-night.avif') type('image/avif'),url('/portfolio-website/assets/nav-coast/coastal-nav-night.webp') type('image/webp'))}
html[data-theme=light] .library-header{background-color:#143c32;border-bottom-color:rgba(255,255,255,.58);background-image:linear-gradient(90deg,rgba(3,31,27,.92) 0%,rgba(3,31,27,.56) 24%,rgba(3,31,27,.18) 50%,rgba(3,31,27,.66) 76%,rgba(3,31,27,.92) 100%),linear-gradient(180deg,rgba(3,31,27,.06),rgba(3,31,27,.30)),url('/portfolio-website/assets/nav-coast/coastal-nav-day.webp');background-image:linear-gradient(90deg,rgba(3,31,27,.92) 0%,rgba(3,31,27,.56) 24%,rgba(3,31,27,.18) 50%,rgba(3,31,27,.66) 76%,rgba(3,31,27,.92) 100%),linear-gradient(180deg,rgba(3,31,27,.06),rgba(3,31,27,.30)),image-set(url('/portfolio-website/assets/nav-coast/coastal-nav-day.avif') type('image/avif'),url('/portfolio-website/assets/nav-coast/coastal-nav-day.webp') type('image/webp'))}
.library-mark{position:relative;display:block;width:36px;height:31px;border:0;border-radius:0;color:inherit;filter:drop-shadow(0 3px 5px rgba(0,0,0,.36))}
.library-mark i{position:absolute;left:2px;display:block;width:32px;height:7px;border:1px solid rgba(255,255,255,.72);border-radius:2px;box-shadow:inset -4px 0 rgba(255,255,255,.2)}
.library-mark i:nth-child(1){bottom:2px;background:#d85e59}.library-mark i:nth-child(2){bottom:10px;left:1px;width:34px;background:#5ca777}.library-mark i:nth-child(3){bottom:18px;left:4px;width:30px;background:#3587d8}
.collection-cover{display:flex;align-items:center;justify-content:center;width:100%;max-width:360px;aspect-ratio:512/669;margin:0 auto}
.collection-cover a,.collection-cover picture{display:block;width:100%;height:auto}
.collection-cover img{display:block;width:100%;height:auto;aspect-ratio:512/669;object-fit:contain}
@media(max-width:760px){.library-mark{width:32px;height:29px}.library-mark i{height:6px}.library-mark i:nth-child(1){bottom:2px}.library-mark i:nth-child(2){bottom:9px}.library-mark i:nth-child(3){bottom:16px}.collection-cover{width:min(70vw,340px)}html[data-theme=dark] .library-header{background-image:linear-gradient(90deg,rgba(2,12,24,.94),rgba(2,12,24,.48) 44%,rgba(2,12,24,.82)),linear-gradient(180deg,rgba(0,8,20,.12),rgba(0,8,20,.44)),url('/portfolio-website/assets/nav-coast/coastal-nav-night-mobile.webp');background-image:linear-gradient(90deg,rgba(2,12,24,.94),rgba(2,12,24,.48) 44%,rgba(2,12,24,.82)),linear-gradient(180deg,rgba(0,8,20,.12),rgba(0,8,20,.44)),image-set(url('/portfolio-website/assets/nav-coast/coastal-nav-night-mobile.avif') type('image/avif'),url('/portfolio-website/assets/nav-coast/coastal-nav-night-mobile.webp') type('image/webp'))}html[data-theme=light] .library-header{background-image:linear-gradient(90deg,rgba(3,31,27,.92),rgba(3,31,27,.42) 44%,rgba(3,31,27,.84)),linear-gradient(180deg,rgba(3,31,27,.03),rgba(3,31,27,.36)),url('/portfolio-website/assets/nav-coast/coastal-nav-day-mobile.webp');background-image:linear-gradient(90deg,rgba(3,31,27,.92),rgba(3,31,27,.42) 44%,rgba(3,31,27,.84)),linear-gradient(180deg,rgba(3,31,27,.03),rgba(3,31,27,.36)),image-set(url('/portfolio-website/assets/nav-coast/coastal-nav-day-mobile.avif') type('image/avif'),url('/portfolio-website/assets/nav-coast/coastal-nav-day-mobile.webp') type('image/webp'))}}
@media(prefers-reduced-motion:reduce){.day-plane,.bird-flock,.shooting-star{animation:none;opacity:.5}.shooting-star{display:none}}

/* The Library is installable in its own scope and the reader remains one continuous document. */
.library-jump .library-install{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-width:240px;border:1px solid var(--line);padding:15px 18px;background:color-mix(in srgb,var(--surface) 75%,transparent);color:var(--ink);font:10px var(--mono);letter-spacing:.04em;text-align:left;transition:border-color .2s,transform .2s,background .2s}
.library-jump .library-install:is(:hover,:focus-visible){border-color:#d9b16d;transform:translateY(-2px);background:color-mix(in srgb,var(--surface) 90%,transparent)}
.library-install-status{position:relative;z-index:1;min-height:1.5em;margin:12px 0 0;color:var(--muted);font:9px/1.6 var(--mono);letter-spacing:.04em}
.library-install-status:empty{display:none}
.reader-source-page{content-visibility:auto;contain-intrinsic-size:auto 1000px}
.reader-dialog,.reader-shell,.reader-stage,.reader-paper,.reader-copy,.reader-source-page{min-width:0;max-width:100%}
.reader-stage{overflow-x:hidden}
.reader-copy .reader-source-page :is(h2,p,li){overflow-wrap:anywhere;word-break:break-word}
.reader-source-page+.reader-source-page{margin-top:clamp(52px,8vh,96px);padding-top:clamp(42px,7vh,78px);border-top:1px solid rgba(217,177,109,.2)}
.reader-source-page-marker{margin:0 0 clamp(22px,4vw,38px);color:#d9b16d;font:9px var(--mono);letter-spacing:.16em;text-transform:uppercase}
.reader-page-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;color:#aab6b4;font:9px var(--mono)}
.reader-page-state{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;letter-spacing:.05em}
.reader-page-state b{color:#f2d79e;font-weight:500}
.reader-scroll-note{color:#71827f;letter-spacing:.035em}
.reader-dialog[data-reading-tone=paper] .reader-page-nav{color:#53615c}
.reader-dialog[data-reading-tone=paper] .reader-page-state b{color:#7d582b}
.reader-dialog[data-reading-tone=paper] .reader-scroll-note{color:#6d7b75}
@media(max-width:760px){.reader-page-nav{justify-content:center;text-align:center}.reader-scroll-note{width:100%}.reader-source-page+.reader-source-page{margin-top:54px;padding-top:42px}}
@media(max-width:520px){.library-jump .library-install{min-width:0;width:100%}.reader-source-page{contain-intrinsic-size:auto 900px}}
