.hero-frame{position:relative;width:100%;height:calc(100svh - var(--nav-h));min-height:380px;max-height:940px;background:var(--paper);display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-img{width:100%;height:100%;object-fit:contain;padding:0 0 96px;opacity:0;transition:opacity .5s ease}.hero-img.visible{opacity:1}.hero-overlay{position:absolute;left:0;right:0;bottom:0;padding:0 0 22px;background:transparent}.hero-ph-title{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--plotter);font-variation-settings:var(--px);font-weight:400;font-size:clamp(18px,3.5vw,42px);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);opacity:.25;text-align:center;padding:48px;pointer-events:none;transition:opacity .3s}.hero-ph-title.hidden{opacity:0}.hero-cap{display:grid;grid-template-columns:1fr auto;align-items:end;gap:32px}.hero-cap-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,3.5vw,44px);letter-spacing:-.02em;line-height:1.1;color:var(--ink)}.hero-cap-meta{margin-top:9px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.hero-cap-ctrls{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-bottom:4px}.cap-btn{border:1px solid var(--rule);background:var(--paper);color:var(--muted);width:40px;height:36px;font-size:14px;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s,background .15s}.cap-btn:hover{border-color:var(--ink);color:var(--ink);background:var(--paper-2)}.hero-scroll{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--muted);transition:color .15s;z-index:2}.hero-scroll:hover{color:var(--ink)}.hero-scroll .hs-label{font-size:8px;letter-spacing:.22em;text-transform:uppercase}.hero-scroll .hs-arrow{font-size:13px;line-height:1;animation:scrollBob 1.8s ease-in-out infinite}@keyframes scrollBob{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(4px);opacity:1}}@media(max-width:760px){.hero-cap{grid-template-columns:1fr;gap:14px}}@media(prefers-reduced-motion:reduce){.hero-scroll .hs-arrow{animation:none}}#work{background:var(--paper)}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule)}.work-card{background:var(--paper);cursor:pointer;transition:background .12s;position:relative}.work-card:hover{background:var(--paper-2)}.work-thumb{aspect-ratio:1;background:var(--paper);overflow:hidden;position:relative}.work-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:14px;display:block}.work-avail{position:absolute;top:10px;left:10px;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;background:transparent;color:var(--avail);border:1px solid rgba(31,138,77,.4);padding:3px 7px 3px 6px;display:inline-flex;align-items:center;gap:5px}.work-avail:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--avail);flex-shrink:0}.work-avail.sold{color:var(--muted-soft);border:1px solid var(--rule)}.work-avail.sold:before{display:none}.work-info{padding:12px 14px 16px}.work-name{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink);line-height:1.3;margin-bottom:4px}.work-sub{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.work-dim{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-soft);margin-top:6px}.work-dim .work-price{color:var(--avail)}.sec-more.legend{border:none;display:inline-flex;align-items:center;gap:7px}.legend-dot{width:7px;height:7px;border-radius:50%;background:var(--avail);display:inline-block}.work-footer{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;text-align:center;min-height:100svh;padding:100px 0;overflow:hidden}.work-footer.fade-up{opacity:1;transform:none}.work-footer-bg{position:absolute;inset:0;z-index:0;display:grid;grid-template-columns:repeat(10,1fr);gap:3px;opacity:0;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 66% 88% at 50% 50%,#000 22%,transparent 74%);mask-image:radial-gradient(ellipse 66% 88% at 50% 50%,#000 22%,transparent 74%);transform:scale(1.06);transition:opacity 1.1s ease,transform 1.4s cubic-bezier(.2,.6,.2,1)}.work-footer.in .work-footer-bg{opacity:.17;transform:scale(1)}.work-footer-bg img{width:100%;height:100%;aspect-ratio:1;object-fit:cover;display:block}.work-footer-note{position:relative;z-index:1;max-width:540px;font-family:var(--serif);font-size:19px;line-height:1.55;color:var(--ink);text-wrap:pretty;opacity:0;transform:translateY(16px);transition:opacity .6s ease .15s,transform .6s ease .15s}.work-footer.in .work-footer-note{opacity:1;transform:translateY(0)}.work-footer .btn{position:relative;z-index:1;padding:15px 30px;font-size:11px;opacity:0;transform:translateY(16px);transition:opacity .6s ease .32s,transform .6s ease .32s}.work-footer.in .btn{opacity:1;transform:translateY(0)}@media(max-width:900px){.work-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.work-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){.work-footer-bg,.work-footer-note,.work-footer .btn{transition:none}}.proc-video-wrap{width:100%;border:1px solid var(--ink);background:#0e0c09;overflow:hidden;position:relative;margin-bottom:36px;aspect-ratio:16 / 9}.proc-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;display:block}.feed-overlay{position:absolute;z-index:2;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#f4f0e6d1;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.6)}.feed-tl{top:12px;left:14px}.feed-tr{top:12px;right:14px;display:flex;align-items:center;gap:6px}.proc-gallery-head{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--rule);margin-bottom:16px}.proc-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.proc-gallery-foot{padding-bottom:52px}.proc-shot{width:100%;aspect-ratio:4 / 5;border:1px solid var(--rule);background:var(--paper-deep);overflow:hidden}.proc-shot img{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:760px){.proc-gallery{grid-template-columns:repeat(2,1fr)}}.ascii-div{font-family:var(--mono);font-size:15px;line-height:1.05;letter-spacing:0;white-space:pre;color:var(--ink);overflow:hidden;padding:14px 0;opacity:.4;user-select:none}@keyframes plotDraw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.ascii-div.drawing{animation:plotDraw 1.6s cubic-bezier(.55,.02,.2,1) both}.div-wrap{position:relative}@media(prefers-reduced-motion:reduce){.ascii-div.drawing{animation:none}}.cm-root{position:fixed;inset:0;z-index:1100;display:none}.cm-root.on{display:block}.cm-back{position:absolute;inset:0;background:#1716159e}.cm-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));background:var(--paper);border:1px solid var(--ink);box-shadow:0 30px 70px #1716154d;padding:34px 32px 30px}.cm-x{position:absolute;top:14px;right:16px;width:32px;height:32px;border:1px solid var(--rule);background:transparent;color:var(--ink);font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.cm-x:hover{background:var(--paper-2);border-color:var(--ink)}.cm-eyebrow{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.cm-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:32px;letter-spacing:-.02em;color:var(--ink);margin-bottom:12px}.cm-lede{font-family:var(--serif);font-size:13.5px;line-height:1.6;color:var(--ink-soft);margin-bottom:22px;text-wrap:pretty}.cm-field{margin-bottom:12px}.cm-field label{display:block;font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.cm-field input,.cm-field textarea{width:100%;font-family:var(--mono);font-size:12px;color:var(--ink);background:var(--paper-deep);border:1px solid var(--rule);padding:10px 12px;outline:none;transition:border-color .15s;resize:vertical}.cm-field input:focus,.cm-field textarea:focus{border-color:var(--ink)}.cm-actions{display:flex;align-items:center;gap:14px;margin-top:18px}.cm-cancel{background:none;border:none;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:color .15s}.cm-cancel:hover{color:var(--ink)}.cm-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.cm-sent{display:none;font-family:var(--serif);font-size:14px;line-height:1.6;color:var(--ink);padding:8px 0 4px}.cm-sent.show{display:block}.cm-sent b{font-style:italic}.about-grid{display:grid;grid-template-columns:408px 1fr;gap:60px;padding:4px 0 64px;align-items:start}.about-col-portrait{position:relative}.portrait{position:relative;flex-shrink:0;width:408px;max-width:100%;align-self:flex-start}.portrait-ascii{font-family:var(--mono);font-size:6.6px;line-height:1;white-space:pre;color:var(--ink);margin:0;user-select:none;letter-spacing:0}.about-greet{display:flex;flex-direction:column;gap:6px;margin:20px 0 28px}.about-greet .g1{font-family:var(--serif);font-style:italic;font-weight:300;font-size:30px;line-height:1.1;color:var(--ink)}.about-greet .g2{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:1.7}.about-body{font-family:var(--serif);font-size:14.5px;line-height:1.75;color:var(--ink-soft);text-wrap:pretty}.about-body p+p{margin-top:18px}.about-actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.about-col-text .about-actions{margin-bottom:36px;padding-bottom:36px;border-bottom:1px solid var(--rule)}.about-col-text .sidebar-grp:last-child{margin-bottom:0}.sidebar-grp{margin-bottom:32px}.sidebar-label{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--rule);margin-bottom:8px}.cv-row{display:grid;grid-template-columns:38px 1fr;gap:8px;padding:5px 0;border-bottom:1px dashed var(--rule);font-size:9.5px;line-height:1.5}.cv-yr{font-family:var(--mono);font-weight:500;font-size:10px;color:var(--muted);letter-spacing:.06em;padding-top:1px}.cv-text{color:var(--ink-soft)}.cv-text i{color:var(--ink);font-style:italic}.cv-text b{color:var(--ink);font-weight:500}.cv-tag{font-size:8px;color:var(--muted);margin-left:3px}.contact-row{display:grid;grid-template-columns:50px 1fr;gap:6px;padding:5px 0;font-size:9.5px}.cl{color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.cv a:not(.btn){color:var(--ink);border-bottom:1px solid var(--rule);transition:border-color .15s}.cv a:not(.btn):hover{border-color:var(--ink)}.contact-bot{display:flex;gap:14px;align-items:flex-start;margin-top:14px;padding:14px;border:1px solid var(--rule);background:var(--paper-deep)}.bot-face{font-family:var(--mono);font-size:12px;line-height:1.05;white-space:pre;color:var(--ink);margin:0;flex-shrink:0;user-select:none;transform-origin:center bottom}.bot-face.bounce{animation:botBounce .5s ease}.bot-face.tilt{animation:botTilt .6s ease}@keyframes botBounce{0%,to{transform:translateY(0)}40%{transform:translateY(-5px)}70%{transform:translateY(0)}}@keyframes botTilt{0%,to{transform:rotate(0)}30%{transform:rotate(-6deg)}70%{transform:rotate(5deg)}}.contact-bot .ascii-hand{font-family:var(--mono);font-size:8px;line-height:1;width:46px;white-space:pre;color:var(--accent);flex-shrink:0;align-self:center;margin:0;user-select:none}.bot-msg{display:flex;flex-direction:column;gap:7px}.bot-line{font-family:var(--serif);font-size:12.5px;line-height:1.45;color:var(--ink-soft);text-wrap:pretty}.bot-cta{align-self:flex-start;background:none;border:none;padding:0 0 1px;cursor:pointer;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--accent);transition:color .15s}.bot-cta:hover{color:var(--accent)}@media(max-width:760px){.about-grid{grid-template-columns:1fr;gap:32px}.portrait{width:100%;max-width:408px}}@media(prefers-reduced-motion:reduce){.bot-face.bounce,.bot-face.tilt{animation:none}}
