: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:absolute!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:is([data-player-view=full],: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:is([data-player-view=full],: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:is([data-player-view=full],: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}
/* A dated visual sequence, with a consistent image/copy split. */
.panel-area{width:100%;max-width:1120px}.section-nav{max-width:1000px}#projects{display:block;padding-top:38px}.project-intro{font:12px/1.7 var(--mono)!important;margin-bottom:32px!important;color:#91a98a!important}.project-list{display:block;grid-template-columns:none}.project-row{display:grid;grid-template-columns:78px minmax(0,1.62fr) minmax(0,1fr);gap:24px;align-items:center;padding:44px 0;border-top:1px solid #344238}.project-date-rail{align-self:start;padding-top:6px;font:10px/1.65 var(--mono);color:#83947d;max-width:72px}.project-visual{position:relative;margin:0;aspect-ratio:16/10;min-width:0;overflow:hidden;background:#161c17;border:1px solid #354237;border-radius:3px}.project-visual img{display:block;width:100%;height:100%;object-fit:contain;margin:0}.project-visual figcaption{position:absolute;bottom:0;left:0;right:0;padding:9px 12px;background:#0b110dec;font:8px/1.4 var(--mono);letter-spacing:.25px;color:#9caf95}.project-copy{min-width:0;padding:6px 0}.project-row-heading{display:flex;align-items:flex-start;gap:15px}.project-row-heading .project-icon{flex:0 0 32px;width:32px;height:32px;margin:2px 0 0}.project-row h2{font:28px/1.18 var(--serif);font-weight:500;color:#e4eadd;margin:0;letter-spacing:-.5px}.project-row .project-summary{font:14px/1.75 Arial,sans-serif;color:#aab9a3;margin:18px 0 15px;max-width:40ch}.project-row .project-status{display:block;margin:0 0 14px;font:9px/1.5 var(--mono);color:#83997b}.project-action{display:inline-flex;align-items:center;min-height:44px;font:11px var(--mono)!important;color:#bacda9;border-bottom:1px solid #537047!important;margin:0!important;gap:12px;text-decoration:none}.project-action:hover{color:#eef7e8;border-color:#bacda9!important}.private-work-row{display:flex;align-items:center;gap:17px;border-top:1px solid #344238;padding:24px 0;margin-top:3px;color:#869082}.private-work-row .project-icon{width:28px;height:28px;margin:0}.private-work-row .project-icon svg{stroke:#829080}.private-work-row h2{font:18px var(--serif);font-weight:400;margin:0 0 5px}.private-work-row p{font:10px var(--mono)!important;color:#717e6d!important}.contact-row{border-top:1px solid #344238;padding:20px 0;min-height:72px;flex-wrap:nowrap}.contact-row a{flex:1}.contact-row a svg{width:26px;height:26px}.contact-row a[href*="letterboxd"] svg{width:44px}.contact-label{display:flex;flex-direction:column;gap:7px}.contact-label small{font:10px var(--mono);color:#85967d;line-height:1.5}.contact-arrow{margin-left:auto;font:18px var(--serif);color:#7c9a70}#connect{display:block;max-width:720px;padding-top:30px}#links-list{width:100%}#connect>div{width:100%}.connect-intro{margin-bottom:25px!important;font:14px/1.75 Arial,sans-serif!important;color:#a4b49d!important}
@media(max-width:950px){.project-row{grid-template-columns:64px minmax(0,1.5fr) minmax(0,1fr);gap:18px}.project-row h2{font-size:25px}.project-row .project-summary{font-size:13px}.project-row-heading{gap:10px}.project-row-heading .project-icon{width:27px;height:27px;flex-basis:27px}}
@media(max-width:759px){#projects{padding-top:28px}.project-intro{margin-bottom:20px!important}.project-row{grid-template-columns:1fr;gap:17px;padding:30px 0;position:relative}.project-date-rail{font-size:9px;max-width:none;padding:0;grid-row:1}.project-copy{display:contents}.project-row-heading{grid-row:2;gap:12px}.project-row h2{font-size:28px}.project-visual{grid-row:3;margin-top:2px}.project-row .project-summary{grid-row:4;max-width:none;margin:0;font-size:13px;line-height:1.75}.project-status{grid-row:5}.project-action{grid-row:6;justify-self:start}.project-row-heading .project-icon{width:30px;height:30px;flex-basis:30px}.project-visual figcaption{font-size:7px;padding:7px 10px}.contact-row{gap:13px}.contact-row a span{font-size:13px}.contact-label small{font-size:9px}.contact-row #copy-email{min-width:44px;min-height:44px}.contact-row #copy-status:not(:empty){position:absolute;bottom:2px;left:0}.contact-row{position:relative}#connect{padding-top:25px}}

.project-row .project-status{margin:0 0 15px}.project-row[data-project=private]{opacity:.75}.project-row[data-project=private]:focus-visible{outline:2px solid #bacda9;outline-offset:6px}.project-row[data-project=private]:focus:after{content:"Not publicly shareable";position:absolute;right:0;bottom:12px;background:#18231b;padding:8px 10px;color:#bacda9;font:10px var(--mono)}.project-row{position:relative}
@media(max-width:759px){.project-row .project-status{grid-row:1;justify-self:end;text-align:right;margin:0;max-width:58%;font-size:8px}}
#connect{max-width:1120px}#connect>div:first-child{max-width:720px}.recent-films{margin-top:46px}.recent-films-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:25px}.recent-films-heading h2{margin:0;font:29px var(--serif);font-weight:400;letter-spacing:-.5px}.recent-films-heading small{font:9px var(--mono);color:#7f9477;line-height:1.6}.film-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.recent-films .film-card{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:start;align-content:start;gap:16px;text-decoration:none;border-top:1px solid #344238;border-bottom:0;margin:0;padding:20px 0 5px;min-width:0}.film-card:hover .film-source{color:#e0eed4}.film-card img{display:block;width:78px;height:117px;object-fit:cover;border-radius:2px}.film-card h3{font:23px/1.2 var(--serif);font-weight:400;color:#e1e7da;margin:1px 0 12px}.film-card .film-meta{font:9px/1.65 var(--mono);color:#83957c;margin:0 0 9px}.film-rating{font:12px Arial,sans-serif;letter-spacing:2px;color:#9ac18a}.film-card .film-review{grid-column:1/-1;font:12px/1.7 Arial,sans-serif;color:#a6b39f;margin:0;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.film-source{grid-column:1/-1;color:#bacda9;font:10px var(--mono);padding:5px 0;min-height:28px}
@media(max-width:950px){.film-grid{gap:22px}.film-card h3{font-size:21px}.film-card .film-review{font-size:12px}.recent-films .film-card{grid-template-columns:65px 1fr;gap:13px}.film-card img{width:65px;height:98px}}
@media(max-width:759px){.recent-films-heading{display:block;margin-bottom:12px}.recent-films-heading small{display:block;margin-top:10px;font-size:8px}.film-grid{grid-template-columns:1fr;gap:18px}.recent-films .film-card{grid-template-columns:78px 1fr;gap:16px}.film-card img{width:78px;height:117px}.film-card h3{font-size:25px}.film-card .film-review{font-size:13px}.recent-films{margin-top:38px}}
.recent-films .film-card.no-poster{grid-template-columns:1fr}

/* Override the legacy thumbnail limits for the representative image stages. */
.project-list .project-visual img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;margin:0}.section-nav{max-width:920px}
@media(min-width:951px){.section-nav{max-width:min(920px,calc(73vw - 86px))}}
@media(min-width:951px) and (max-width:1200px){.section-nav{max-width:70%;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px){.project-date-rail,.project-row .project-status,.project-row-heading,.project-visual,.project-row .project-summary,.project-action{grid-column:1/-1}.project-date-rail{max-width:40%}}
