:root{--accent:#bacda9;--accent-soft:#a3c596;--accent-middle:#74ac74;--accent-dark:#0e4931;--accent-olive:#678f4f}
.section-button.active{border-color:var(--accent-soft);color:var(--accent)}.section-button:hover{border-color:var(--accent-middle)}blockquote a:hover{color:var(--accent)}
.deck-handle{display:block;position:absolute;top:-23px;right:0;width:42px;height:22px;background:none;border:0;padding:0;color:#8a9888;font:16px var(--mono);letter-spacing:3px;cursor:grab;touch-action:none}.deck-handle:hover{color:var(--accent)}.deck-handle.dragging{cursor:grabbing}.deck.moved{position:fixed!important;top:var(--player-top)!important;left:var(--player-left)!important;right:auto!important;max-height:calc(100dvh - 16px);overflow-y:auto;padding-top:24px!important}.deck.moved .deck-handle{top:0;right:0}
.player-caption #help-toggle,.player-caption #visual-collapse{width:24px;min-height:28px;font-size:12px;letter-spacing:0}.player-caption>div:last-child{gap:4px}.detail-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font:8px var(--mono);margin-bottom:10px}.detail-row select{min-width:175px;max-width:100%;background:#202322;border:1px solid #444944;color:#ccd4c8;font:9px var(--mono);padding:7px}.deck .reset-position{margin-bottom:13px;width:100%;color:#a3c596}.player-help{position:relative;background:#18241d;border:1px solid #678f4f;border-radius:3px;padding:18px 14px 14px;margin-top:12px;box-shadow:0 5px 20px #0008}.player-help .deck-help{margin:0!important;padding-right:9px;font-size:9px!important;color:#cbd7c4!important}.player-help #help-close{position:absolute;right:2px;top:1px;background:none;border:0;color:var(--accent);width:30px;height:30px;font-size:17px}.deck #deck-options:empty{display:none}.deck [hidden]{display:none!important}
.character-menu{position:fixed;z-index:30;width:164px;background:#16241c;border:1px solid #74ac74;border-radius:5px;padding:5px;box-shadow:0 7px 22px #0009;color:#e2ebdc}.character-menu button{display:block;text-align:left;width:100%;border:0;border-radius:2px;background:none;font:12px var(--mono);padding:10px}.character-menu button:hover,.character-menu button:focus-visible{background:#0e4931;color:#bacda9}.character-menu span{display:block;font:9px var(--mono);line-height:1.5;padding:8px;color:#bacda9}.character[data-editing]{touch-action:none;cursor:move;outline:1px dashed #bacda9;outline-offset:5px}.character.placed{position:absolute!important;left:var(--face-left)!important;top:var(--face-top)!important;right:auto!important;bottom:auto!important;transform:none!important;margin:0!important}.character-placeholder{display:none}
@media(max-width:950px){.character-placeholder{display:block;width:var(--slot-size);height:var(--slot-size);flex:0 0 var(--slot-size)}}
@media(max-width:650px){.deck-handle{top:-16px;height:18px;width:36px;font-size:13px}.deck.moved:has(#options-toggle[aria-expanded=true]),.deck:has(#help-toggle[aria-expanded=true]){width:min(360px,calc(100vw - 44px));max-height:calc(100dvh - 24px);overflow-y:auto;background:#101010}.deck:has(#help-toggle[aria-expanded=true]):not(.moved){top:90px;left:22px;right:22px}.player-caption #help-toggle,.player-caption #visual-collapse{min-width:30px;min-height:32px}.deck:has(#options-toggle[aria-expanded=true]) .player-caption>div:first-child{max-width:185px}.deck:has(#help-toggle[aria-expanded=true]) .player-help{margin-top:5px}.deck.moved{padding-top:22px!important}.character-menu button{min-height:40px}}
@media(prefers-reduced-motion:reduce){.player-help,.character-menu{scroll-behavior:auto}}

.deck{padding-top:22px}.deck .deck-handle{top:0}.deck.moved{padding-top:22px!important}

.section-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.section-button{letter-spacing:.4px;padding-left:17px;padding-right:17px}.secret-hint{font-size:10px;color:#a3c596;margin-left:auto}.contact-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:38px}.content-panel .contact-row a{display:inline-flex;align-items:center;gap:12px;min-height:34px;margin:0;border-bottom:0;font-size:14px}.contact-row svg{width:20px;height:20px;flex:none;color:#bacda9}.contact-row a[href*="letterboxd"] svg{width:36px}.contact-row #copy-email{padding:4px 7px;margin:0;border:1px solid #4b634e;font-size:16px;line-height:1;min-height:30px;min-width:30px;background:#142219;color:#bacda9}.contact-row #copy-status{font:10px var(--mono);color:#a3c596;margin:0}.contact-row #copy-status:empty{display:none}.reads-list{display:grid;gap:28px;padding:6px 0}.book{display:grid;grid-template-columns:100px 1fr;gap:22px;align-items:start}.book img{width:100px;height:150px;object-fit:contain;object-position:top;background:none}.book h2{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.15;margin:0 0 7px}.book .book-author{font:11px var(--mono);color:#bacda9;margin:0 0 9px}.book small{display:block;font:10px var(--mono);color:#a3c596;margin-bottom:9px}.book p{font-size:13px;line-height:1.6;max-width:580px}
@media(max-width:650px){.section-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.section-button{font-size:11px;min-height:44px;padding:12px}.secret-hint{margin-left:0;margin-top:11px;display:block}footer{display:block}.book{grid-template-columns:76px 1fr;gap:15px}.book img{width:76px;height:114px}.book h2{font-size:21px}.book .book-author{font-size:10px;line-height:1.5}.book p{font-size:12px}.contact-row{gap:8px}.contact-row a span{overflow-wrap:anywhere;font-size:12px}}

.panel-buttons #input-modifier:before{content:"↻";inset:7px!important;width:auto!important;height:auto!important;background:transparent!important;font:15px Arial;color:#bacda9}.panel-buttons #input-modifier[aria-pressed=true]{border-color:#a3c596}
@media(max-width:650px){.deck .panel-buttons>div:first-child{display:block}.deck .panel-buttons{left:7px;gap:5px}.deck .panel-buttons>div button{width:44px!important;height:44px!important}.deck .panel-readout{left:105px;right:3px;top:24px}.deck .panel-buttons #play svg{left:15px;top:15px}.deck .panel-buttons #input-modifier:before{inset:12px!important;font-size:19px}.deck:has(#options-toggle[aria-expanded=true]) .panel-readout{left:55px;right:35px;top:16px}}
#visualizer{touch-action:none;cursor:grab}#visualizer.orbiting{cursor:grabbing}
/* A quiet parallel-line rhythm for the larger reading section. */
.reads-list{position:relative;border-top:1px solid #678f4f;padding-top:25px}.reads-list:before{content:'';position:absolute;left:0;right:0;top:4px;height:10px;background:repeating-linear-gradient(to bottom,transparent 0 3px,#0e4931 3px 4px);pointer-events:none}
.document-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:25px}.document-links a{display:inline-flex;align-items:center;gap:15px;min-height:44px;border-bottom:1px solid #678f4f;color:var(--accent);font:11px var(--mono);text-decoration:none}.document-links a:hover{color:#eef4e8;border-color:#bacda9}.document-links a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
/* Matched hardware controls: PLAY first, LOOP immediately to its right. */
.deck .panel-buttons{gap:9px}.deck .panel-buttons>div button{width:36px;height:36px}.deck .panel-buttons>div>span{font:7px var(--mono);letter-spacing:.7px;text-transform:uppercase;margin-top:6px;color:#929a94}.deck .panel-buttons button svg{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%);width:12px;height:12px;display:block;color:#a9b0ac}.deck .panel-buttons #input-modifier:before{display:none}.deck .panel-buttons #input-modifier svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.deck .panel-buttons #input-modifier[aria-pressed=true]{background:#213328;border-color:#a3c596}.deck .panel-buttons button[aria-pressed=true] svg{color:#d6e5cd}.deck .panel-buttons #play svg{fill:currentColor}
@media(max-width:650px){.deck .panel-buttons{gap:5px}.deck .panel-buttons button svg{width:14px;height:14px}}
/* The partial painting sits visibly at the viewport edge; the full gallery keeps ordinary page flow. */
.nighthawks{transition:height .45s cubic-bezier(.22,.8,.26,1),opacity .35s ease}.nighthawks.partial{position:fixed;left:0;bottom:0;z-index:4;height:var(--peek-height,0px);pointer-events:none}.painting-stage img{transform:none!important;opacity:1!important}.nighthawks.partial .painting-stage{position:relative}.nighthawks.closing{height:0!important}
@media(prefers-reduced-motion:reduce){.nighthawks{transition:none!important}}
.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.project-card{border:1px solid #38493c!important;padding:0!important;background:#121713;min-width:0}.project-preview{display:block;width:100%;border:0;background:none;text-align:left;padding:22px;color:inherit;cursor:pointer}.project-preview:hover{background:#16241c}.project-preview:focus-visible{outline:2px solid #bacda9;outline-offset:4px}.project-preview img{display:block;width:100%;height:190px;object-fit:cover;margin:0 0 20px;border:1px solid #344739;background:#0d120e}.project-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.project-title{font:26px/1.2 var(--serif);color:#e9eee3}.project-status{font:9px var(--mono);color:#a3c596;letter-spacing:.5px}.project-summary{display:block;font:13px/1.65 Arial,sans-serif;margin-top:12px;color:#c5cec0}.project-hint{display:block;font:10px var(--mono);color:#bacda9;margin-top:20px}.project-detail{border-top:1px solid #38493c;padding:20px 22px}.project-detail p{font-size:13px;line-height:1.65}.project-detail a{display:inline-flex;min-height:44px;align-items:center;color:#bacda9;font:11px var(--mono)}
@media(max-width:650px){.project-list{grid-template-columns:1fr;gap:15px}.project-preview{padding:18px}.project-title{font-size:25px}.project-preview img{height:175px}.project-detail{padding:18px}}
a.project-preview{box-sizing:border-box;text-decoration:none!important;border-bottom:0!important;margin:0!important}.made-without-ai{display:inline-block;border:1px solid #678f4f;border-radius:2px;padding:5px 8px;font:10px monospace;color:#bacda9;background:#16241c}
.project-intro{margin:0 0 25px!important;color:#bacda9!important;max-width:650px}.project-icon{display:block;width:52px;height:52px;margin-bottom:18px}.project-icon svg{display:block;width:100%;height:100%;fill:none;stroke:#a3c596;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.private-work{padding:22px!important;opacity:.56;background:#121412}.private-work .project-icon svg{stroke:#929a92}.private-work h2{font:22px/1.3 var(--serif)!important;margin:0 0 12px!important}.private-work p{font:11px var(--mono)!important;color:#a3aca0!important}.private-work:focus-visible{outline:2px solid #929a92;outline-offset:4px}
.project-date{font:9px var(--mono);color:#809477;width:100%;margin-top:4px}.work-in-progress .project-preview{cursor:default}.work-in-progress .project-preview:hover{background:none}.work-in-progress .project-status{color:#93a989}
