:root{--color-bg: #0a0a0a;--color-amber: #ffb000;--color-amber-dim: #cc8800;--color-amber-glow: rgba(255, 176, 0, .3);--color-cyan: #00d4ff;--color-green: #00ff88;--color-red: #ff4444;--color-dim: rgba(255, 176, 0, .4);--font-display: "VT323", monospace;--font-mono: "Share Tech Mono", monospace;--text-xs: clamp(11px, 1.5vw, 13px);--text-sm: clamp(13px, 1.8vw, 15px);--text-base: clamp(15px, 2vw, 18px);--text-md: clamp(18px, 2.5vw, 22px);--text-lg: clamp(22px, 3vw, 28px);--text-xl: clamp(28px, 4vw, 38px);--text-2xl: clamp(36px, 6vw, 56px);--leading-tight: 1.2;--leading-snug: 1.4;--leading-normal: 1.6;--leading-loose: 1.8;--tracking-wide: .08em;--tracking-wider: .12em;--color-link: var(--color-cyan);--color-link-hover: var(--color-cyan);--font-size-base: var(--text-base);--font-size-sm: var(--text-sm);--font-size-lg: var(--text-lg);--font-size-xl: var(--text-xl);--font-size-terminal: 18px;--header-height: 48px;--header-font-size: 15px;--header-border: 1px solid rgba(255, 176, 0, .2);--footer-font-size: 13px;--footer-title-font-size: 22px;--footer-padding: 20px 32px;--footer-border: 1px solid rgba(255, 176, 0, .2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--color-bg);color:var(--color-amber);font-family:var(--font-mono);font-size:var(--font-size-base);overflow:hidden}.app-root{height:100vh;height:100dvh}a:visited{color:inherit}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.site-input{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber);background:#ffb00012;border:1px solid rgba(255,176,0,.4);padding:10px 14px;outline:none;transition:border-color .15s}.site-input::placeholder{color:var(--color-amber-dim);opacity:.85}.site-input:focus{border-color:#ffb000bf}.site-btn{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber);background:none;border:1px solid rgba(255,176,0,.4);padding:10px 20px;cursor:pointer;letter-spacing:.06em;white-space:nowrap;transition:border-color .15s,color .15s}.site-btn:hover:not(:disabled){border-color:var(--color-amber)}.site-btn:disabled{opacity:.5;cursor:not-allowed}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.06) 2px,rgba(0,0,0,.06) 4px);pointer-events:none;z-index:9999}.spotify-wrapper{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex:1;min-width:0;overflow:hidden}.spotify-now-playing{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--color-amber-dim);font-family:var(--font-mono);font-size:var(--header-font-size);min-width:0;overflow:hidden}.spotify-now-playing:hover{color:var(--color-cyan)}.spotify-listening{flex-shrink:0;color:#1db954;font-size:var(--header-font-size)}.spotify-cover{width:28px;height:28px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,176,0,.2)}.spotify-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.spotify-title{color:var(--color-amber)}.spotify-divider{color:#ffb00033;flex-shrink:0;-webkit-user-select:none;user-select:none}@media(max-width:640px){.spotify-wrapper{display:none}}.header-root{height:var(--header-height);border-bottom:var(--header-border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;flex-shrink:0;font-family:var(--font-mono);font-size:var(--header-font-size);color:var(--color-amber);background:var(--color-bg);position:relative}.header-left{display:flex;align-items:flex-end;gap:10px;cursor:pointer;flex-shrink:0}.header-logo{height:28px;width:auto}.header-site-title{font-family:var(--font-display);font-size:22px;color:var(--color-amber);line-height:1}.header-site-title:hover{text-decoration:underline}.header-right{display:flex;align-items:center;gap:20px;flex-shrink:0}.header-infobar{display:flex;align-items:center;gap:16px;color:var(--color-amber-dim);font-size:var(--header-font-size);letter-spacing:.04em}.header-infobar-sep{color:#ffb00033;-webkit-user-select:none;user-select:none}.header-gui-toggle{font-family:var(--font-mono);font-size:var(--header-font-size);color:var(--color-amber-dim);background:none;border:1px solid rgba(255,176,0,.2);border-radius:3px;padding:3px 9px;cursor:pointer;letter-spacing:.04em;transition:color .15s ease,border-color .15s ease;white-space:nowrap;flex-shrink:0}.header-gui-toggle:hover{color:var(--color-amber);border-color:var(--color-amber-dim)}.header-gui-toggle--active{color:var(--color-amber);border-color:#ffb00073}.header-hamburger{cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:4px;background:none;border:none;flex-shrink:0}.header-hamburger-line{width:22px;height:2px;background:var(--color-amber);display:block}.header-menu{position:absolute;top:var(--header-height);right:0;background:#111;border:var(--header-border);border-top:none;min-width:180px;z-index:100}.header-menu-item{display:block;padding:12px 24px;color:var(--color-amber);font-family:var(--font-mono);font-size:var(--header-font-size);cursor:pointer;border-bottom:1px solid rgba(255,176,0,.1);background:none;width:100%;text-align:left;transition:background .1s ease}.header-menu-item:hover{background:#ffb0000d}@media(max-width:640px){.header-root{padding:0 10px}.header-infobar{display:none}.header-site-title{font-size:17px}}.share-bar{display:flex;align-items:center;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,176,0,.15)}.share-bar--compact{margin-top:0;padding-top:0;border-top:none;gap:8px}.share-bar-label{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-amber-dim);margin-right:4px}.share-bar-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--color-amber-dim);background:transparent;border:1px solid rgba(255,176,0,.2);font-size:1rem;cursor:pointer;text-decoration:none;transition:color .15s,border-color .15s;font-family:inherit;padding:0}.share-bar--compact .share-bar-btn{width:26px;height:26px;font-size:.75rem}.share-bar-btn:hover{color:var(--color-cyan);border-color:var(--color-cyan)}.footer-nav button:hover{text-decoration:underline}@media(max-width:1024px){.footer-nav{display:none!important}}@media(max-width:640px){.footer-root{padding:10px 16px!important}}.terminal{display:flex;flex-direction:column;height:100%;box-sizing:border-box;cursor:text;font-family:var(--font-mono);font-size:var(--font-size-terminal);color:var(--color-amber);animation:page-fade-in .2s ease}.terminal-output{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 28px 16px;word-break:break-word;white-space:pre-wrap;scrollbar-width:thin;scrollbar-color:var(--color-amber-dim) transparent}.terminal-line{line-height:1.7;min-height:1.7em}.terminal--normal{color:var(--color-amber)}.terminal--dim{color:var(--color-amber-dim)}.terminal--error{color:var(--color-red)}.terminal--success{color:var(--color-green)}.terminal--cyan{color:var(--color-cyan)}.terminal--prompt{color:var(--color-amber-dim)}.terminal-active-line,.terminal-input-wrap{white-space:pre-wrap;word-break:break-all}.terminal-prompt-text{color:var(--color-amber);white-space:pre;flex-shrink:0;-webkit-user-select:none;user-select:none}.terminal-input-text{color:var(--color-amber);white-space:pre-wrap;word-break:break-all}.terminal-cursor{display:inline-block;white-space:pre;color:transparent;background:transparent}.terminal-cursor--blink{color:var(--color-bg);background:var(--color-amber);animation:terminal-blink 1s step-end infinite}@keyframes terminal-blink{0%,to{color:var(--color-bg);background:var(--color-amber)}50%{color:var(--color-amber);background:transparent}}.terminal-hidden-input{position:fixed;top:-200px;left:-200px;width:1px;height:1px;opacity:0;pointer-events:none}.terminal-img{max-width:min(480px,100%);max-height:320px;display:block;margin:6px 0;border:1px solid var(--color-amber-dim)}.terminal-quickbar{display:none;overflow-x:auto;gap:8px;padding:8px 14px;border-top:1px solid rgba(255,176,0,.1);flex-shrink:0;scrollbar-width:none}.terminal-quickbar::-webkit-scrollbar{display:none}.terminal-quickbar-btn{font-family:var(--font-mono);font-size:13px;color:var(--color-amber-dim);background:#ffb0000a;border:1px solid rgba(255,176,0,.15);border-radius:3px;padding:5px 12px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:color .15s,border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}.terminal-quickbar-btn:active{color:var(--color-amber);border-color:#ffb00073;background:#ffb0001a}@media(max-width:640px){.terminal-output{padding:12px 14px 10px;font-size:15px}.terminal-quickbar{display:flex}}.home-gui{min-height:100%;padding:24px;display:flex;flex-direction:column;gap:20px;box-sizing:border-box;overflow-y:auto;animation:page-fade-in .2s ease}.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,auto);grid-template-areas:"hero    hero    featured" "hero    hero    featured" "blog    blog    blog" "snaps   snaps   snaps";gap:14px;width:100%;max-width:1200px;margin:0 auto}.bento-card{background:#ffb00008;border:1px solid rgba(255,176,0,.12);border-radius:8px;padding:24px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease;overflow:hidden}.bento-card:hover{border-color:#ffb00047}.bento-card-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber-dim);letter-spacing:var(--tracking-wider);text-transform:uppercase;margin:0}.bento-card-link{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-cyan);text-decoration:none;margin-top:auto}.bento-card-link:hover{text-decoration:underline}.bento-empty{justify-content:center;align-items:flex-start}.bento-empty-label{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber-dim);margin:0}.bento-empty-sub{font-family:var(--font-mono);font-size:var(--text-xs);color:#ffb00059;margin:0}.bento-hero{grid-area:hero;flex-direction:row;align-items:center;gap:28px;padding:32px}.bento-hero-photo{flex-shrink:0;width:140px;height:160px;overflow:hidden;border-radius:6px;border:1px solid rgba(255,176,0,.2)}.bento-hero-img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}.bento-hero-text{display:flex;flex-direction:column;gap:10px;flex:1}.bento-hero-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber-dim);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin:0}.bento-hero-headline{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-amber);margin:0;line-height:var(--leading-tight)}.bento-hero-sub{font-family:var(--font-mono);font-size:var(--text-base);color:var(--color-amber-dim);line-height:var(--leading-normal);margin:0}.bento-hero-ctas{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap}.bento-cta{font-family:var(--font-mono);font-size:var(--text-sm);padding:8px 18px;border-radius:4px;text-decoration:none;transition:background .15s ease,color .15s ease;cursor:pointer}.bento-cta--primary{background:transparent;color:var(--color-amber);border:1px solid rgba(255,176,0,.35)}.bento-cta--primary:hover{border-color:var(--color-amber)}.bento-cta--secondary{background:transparent;color:var(--color-amber);border:1px solid rgba(255,176,0,.35)}.bento-cta--secondary:hover{border-color:var(--color-amber)}.bento-featured{grid-area:featured}.bento-featured-brand{display:flex;align-items:center;gap:10px}.bento-featured-logo{width:36px;height:36px;object-fit:contain;border-radius:6px}.bento-featured-brandname{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-amber)}.bento-featured-footer{display:flex;gap:16px;margin-top:auto;flex-wrap:wrap}.bento-featured-title{font-family:var(--font-display);font-size:var(--text-md);color:var(--color-amber);margin:0}.bento-featured-desc{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber-dim);line-height:var(--leading-normal);margin:0;flex:1}.bento-tags{display:flex;flex-wrap:wrap;gap:6px}.bento-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-cyan);border:1px solid rgba(0,212,255,.25);border-radius:3px;padding:2px 7px}.bento-blog{grid-area:blog}.bento-blog-date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber-dim);margin:0}.bento-blog-title{font-family:var(--font-display);font-size:var(--text-md);color:var(--color-amber);margin:0;line-height:var(--leading-snug)}.bento-blog-desc{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber-dim);line-height:var(--leading-snug);margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.bento-snaps{grid-area:snaps}.bento-snaps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;flex:1}.bento-snap-empty{border-radius:4px;border:1px dashed rgba(255,176,0,.06);aspect-ratio:16/9}.bento-snap-item{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:16/9;display:block;text-decoration:none;border:1px solid rgba(255,176,0,.1);transition:border-color .2s ease}.bento-snap-item:hover{border-color:#ffb00059}.bento-snap-img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .2s ease}.bento-snap-item:hover .bento-snap-img{opacity:.85}.bento-snap-label{position:absolute;bottom:0;left:0;right:0;padding:6px 10px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber);background:linear-gradient(transparent,#0a0a0ad9);text-transform:lowercase}.bento-term-hint{align-self:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber-dim);background:none;border:none;cursor:pointer;padding:4px 8px;opacity:.5;transition:opacity .2s ease}.bento-term-hint:hover{opacity:1;color:var(--color-amber)}@media(max-width:900px){.home-gui{padding:14px}.bento-grid{grid-template-columns:1fr 1fr;grid-template-areas:"hero      hero" "hero      hero" "featured  featured" "blog      blog" "snaps     snaps";gap:10px}.bento-hero{flex-direction:column;align-items:flex-start}.bento-snaps-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.bento-grid{grid-template-columns:1fr;grid-template-areas:"hero" "featured" "blog" "snaps";gap:10px}.bento-hero-photo{width:100%;height:auto}.bento-hero-img{height:auto}.bento-snaps-grid{grid-template-columns:1fr}.bento-snap-empty{display:none}}.pt-layout{display:flex;gap:48px;padding:48px;max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}.pt-photo{flex:0 0 340px}.pt-photo img{width:100%;height:auto;display:block;border:1px solid rgba(255,176,0,.2);filter:grayscale(20%)}.pt-text{flex:1;font-family:var(--font-mono);color:var(--color-amber);font-size:var(--font-size-base);line-height:1.7}.pt-text h2{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-amber);margin:0 0 24px;letter-spacing:.04em}.pt-text p{margin:0 0 20px;color:#ffb000d9}.pt-text p:last-child{margin-bottom:0}.pt-text h3{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-cyan);margin:32px 0 12px;letter-spacing:.04em}.pt-text h4{font-family:var(--font-mono);font-size:var(--font-size-base);color:var(--color-amber);margin:24px 0 8px;font-weight:700}.pt-text ul,.pt-text ol{margin:0 0 20px;padding-left:24px;color:#ffb000d9}.pt-text ul{list-style-type:"› "}.pt-text ol{list-style-type:decimal}.pt-text li{margin-bottom:6px;line-height:1.6}.pt-text a{color:var(--color-link);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#00d4ff59}.pt-text a:hover{text-decoration-color:var(--color-link-hover)}.pt-text strong{color:var(--color-amber);font-weight:700}.pt-text em{color:var(--color-cyan);font-style:normal}@media(max-width:768px){.pt-layout{flex-direction:column;padding:24px 16px;gap:24px}.pt-photo{flex:none;width:100%;max-width:320px;margin:0 auto}}.contact-page{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:80px 48px;height:100%;box-sizing:border-box}.contact-title{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-amber-dim);font-weight:400;letter-spacing:.08em;margin-bottom:24px}.contact-email{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-amber);text-decoration:none;letter-spacing:.04em;transition:color .2s}.contact-email:hover{color:var(--color-cyan)}.contact-body{font-family:var(--font-mono);color:var(--color-amber-dim);margin-bottom:40px;line-height:1.8}.contact-links{display:flex;flex-direction:column;gap:20px}.contact-link{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--color-amber);font-family:var(--font-display);font-size:var(--text-lg);transition:color .2s}.contact-link svg{font-size:1.8rem;flex-shrink:0}.contact-link:hover{color:var(--color-cyan)}.contact-form{display:flex;flex-direction:column;gap:12px;margin-bottom:48px;max-width:540px;width:100%}.contact-form-row{display:flex;gap:12px}.contact-input,.contact-textarea{width:100%;box-sizing:border-box;resize:none}.contact-form-footer{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.contact-form-ok{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-green);margin-bottom:48px}.contact-form-error{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-red);margin:0}@media(max-width:640px){.contact-page{padding:48px 24px;justify-content:flex-start}.contact-form-row{flex-direction:column}}.photos-grid{display:flex;flex-direction:column;width:100%}.photos-row{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-bottom:48px}.photos-cell{display:flex;flex-direction:column;padding:0 24px}.photos-cell-img-link{display:block;aspect-ratio:4 / 3;overflow:hidden;background:#111}.photos-cell-img-link img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease,filter .4s ease;filter:grayscale(30%)}.photos-cell-img-link:hover img{transform:scale(1.03);filter:grayscale(0%)}.photos-cell-empty{width:100%;height:100%;background:repeating-linear-gradient(45deg,#111,#111 10px,#1a1a1a 10px,#1a1a1a 20px)}.photos-cell-caption{padding:12px 0 0;display:flex;align-items:baseline;gap:10px}.photos-cell-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-amber);letter-spacing:.06em;text-transform:lowercase;text-decoration:none;transition:color .2s}.photos-cell-title:hover{color:var(--color-cyan)}.photos-cell-count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber-dim)}@media(max-width:700px){.photos-row{grid-template-columns:1fr}.photos-spacer{display:none}.photos-cell{padding:0 16px}}.gallery{width:100%;max-width:960px;margin:0 auto;padding:32px 24px 64px;box-sizing:border-box}.gallery-header{display:flex;align-items:baseline;gap:24px;margin-bottom:40px;border-bottom:1px solid var(--color-amber-dim);padding-bottom:16px}.gallery-back{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-amber-dim);text-decoration:none;transition:color .2s;white-space:nowrap}.gallery-back:hover{color:var(--color-amber)}.gallery-title{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-amber);letter-spacing:.08em;text-transform:lowercase;margin:0;font-weight:400}.gallery-list{display:flex;flex-direction:column;gap:2px}.gallery-item img{width:100%;height:auto;display:block;filter:grayscale(15%);transition:filter .3s ease}.gallery-item img:hover{filter:grayscale(0%)}.gallery-empty{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-amber-dim);padding:48px 0;text-align:center}.list-page{max-width:760px;margin:0 auto;padding:48px 24px;font-family:var(--font-mono);color:var(--color-amber)}.list-page-title{font-family:var(--font-display);font-size:var(--text-xl);margin:0 0 40px;color:var(--color-amber)}.list-page-loading,.list-page-empty{padding:48px 24px;font-family:var(--font-mono);color:var(--color-amber-dim)}.list-page-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:32px}.list-page-item{border-bottom:1px solid rgba(255,176,0,.15);padding-bottom:32px}.list-page-item-inner{display:block;text-decoration:none;color:inherit}.list-page-item-inner--with-image{display:flex;gap:20px;align-items:flex-start}.list-page-thumb{width:120px;height:80px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,176,0,.2)}.list-page-text{display:flex;flex-direction:column;gap:4px}.list-page-link{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-amber);text-decoration:none;display:block;margin-bottom:4px}.list-page-item-inner:hover .list-page-link,a.list-page-link:hover{color:var(--color-link)}@media(max-width:480px){.list-page-item-inner--with-image{flex-direction:column}.list-page-thumb{width:100%;height:160px}}.list-page-meta{font-size:var(--text-sm);color:var(--color-amber-dim);display:block;margin-bottom:8px}.list-page-desc{font-size:var(--text-sm);color:var(--color-amber-dim);margin:0;line-height:var(--leading-normal)}.newsletter{border-top:1px solid rgba(255,176,0,.12);margin-top:48px;padding-top:32px;margin-bottom:48px}.newsletter-label{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber-dim);margin:0 0 16px;letter-spacing:.04em}.newsletter-form{display:flex;gap:8px;flex-wrap:wrap}.newsletter-input{flex:1;min-width:200px}.newsletter-ok{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-green);margin:0}.newsletter-error{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-red);margin:8px 0 0;width:100%}.post-page{max-width:720px;width:100%;box-sizing:border-box;margin:0 auto;padding:48px 24px;font-family:var(--font-mono)}.post-page-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.post-page-back{display:inline-block;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber-dim);text-decoration:none;margin-bottom:32px}.post-page-topbar .post-page-back{margin-bottom:0}.post-page-back:hover{color:var(--color-cyan)}.post-page-focus-btn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber-dim);background:none;border:1px solid rgba(255,176,0,.15);padding:4px 10px;cursor:pointer;letter-spacing:.08em;transition:color .15s,border-color .15s}.post-page-focus-btn:hover{color:var(--color-amber);border-color:#ffb00066}.post-page--read-mode{max-width:860px}.post-page--read-mode .post-page-body{font-size:var(--text-md);line-height:1.9}.post-page-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-amber);margin:0 0 8px}.post-page-date{font-size:var(--text-sm);color:var(--color-amber-dim);margin:0 0 40px}.post-page-cover-link{display:block;margin-bottom:40px;cursor:pointer}.post-page-cover-link:hover .post-page-cover{border-color:#ffb00080;opacity:.9}.post-page-cover{width:100%;max-height:400px;object-fit:cover;display:block;margin-bottom:40px;border:1px solid rgba(255,176,0,.15);transition:border-color .15s,opacity .15s}.post-page-cover-link .post-page-cover{margin-bottom:0}.post-page-loading,.post-page-error{padding:48px 24px;font-family:var(--font-mono);color:var(--color-amber-dim)}.post-page-body{color:var(--color-amber);line-height:var(--leading-loose);font-size:var(--text-base)}.post-page-body h2,.post-page-body h3{font-family:var(--font-display);color:var(--color-amber);margin-top:2rem;margin-bottom:.5rem}.post-page-body a{color:var(--color-link);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#00d4ff59}.post-page-body a:hover{text-decoration-color:var(--color-link-hover)}.post-page-body code{background:#ffb0001a;padding:2px 6px;border-radius:3px;font-size:.9em}.post-page-body pre code{background:none;padding:0;white-space:pre;font-size:var(--text-sm)}.project-page-brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}.project-page-logo{width:40px;height:40px;object-fit:contain;border-radius:8px}.project-page-brandname{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-amber)}.project-page-status{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-cyan);margin:0 0 6px}.project-page-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px}.project-page-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-cyan);border:1px solid rgba(0,212,255,.25);border-radius:3px;padding:2px 8px}.project-page-url{display:inline-block;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-amber-dim);text-decoration:none;margin-bottom:32px;border-bottom:1px solid rgba(255,176,0,.2);padding-bottom:2px;transition:color .15s ease}.project-page-url:hover{color:var(--color-amber)}.post-page-body pre{background:#ffb0000d;border:1px solid rgba(255,176,0,.15);padding:16px;overflow-x:auto;border-radius:4px;max-width:100%;white-space:pre;word-wrap:normal}.mermaid-diagram{margin:1.5rem 0;overflow-x:auto;background:#ffb00008;border:1px solid rgba(255,176,0,.12);border-radius:4px;padding:16px}.mermaid-diagram svg{max-width:100%;height:auto}.post-page-body table{display:block;overflow-x:auto;border-collapse:collapse;width:max-content;max-width:100%}.post-page-body th,.post-page-body td{border:1px solid rgba(255,176,0,.2);padding:6px 12px;text-align:left;font-size:var(--text-sm);white-space:nowrap}.post-page-body th{color:var(--color-amber);background:#ffb0000f}.post-page-body blockquote{border-left:3px solid rgba(255,176,0,.4);margin:1rem 0;padding:8px 16px;background:#ffb0000a;color:var(--color-amber-dim)}@media(max-width:600px){.post-page{padding:24px 16px}.post-page-title{font-size:var(--text-lg);word-break:break-word}.post-page-body{font-size:var(--text-sm)}.post-page-body h2{font-size:var(--text-md)}.post-page-body h3{font-size:var(--text-base)}.post-page-body pre{padding:12px;font-size:11px;-webkit-overflow-scrolling:touch}.post-page-body pre code{font-size:11px}.post-page-body th,.post-page-body td{font-size:11px;padding:4px 8px}.post-page-body blockquote{padding:8px 12px;font-size:var(--text-sm)}.post-page-topbar{flex-direction:column;align-items:flex-start;gap:8px}}.bookshelf-page{max-width:800px;margin:0 auto;padding:48px 24px;font-family:var(--font-mono);color:var(--color-amber-dim)}.bookshelf-loading{padding:48px;font-family:var(--font-mono);color:var(--color-amber-dim)}.bookshelf-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-amber);margin:0 0 8px}.bookshelf-subtitle{font-size:var(--text-sm);color:var(--color-amber-dim);margin:0 0 40px}.bookshelf-section{margin-bottom:40px}.bookshelf-section-title{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber-dim);text-transform:uppercase;letter-spacing:.12em;margin:0 0 16px;padding-bottom:6px;border-bottom:1px solid rgba(255,176,0,.1)}.bookshelf-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px}.bookshelf-item{display:flex;gap:16px;align-items:flex-start;padding:16px;border:1px solid rgba(255,176,0,.08);transition:border-color .15s}.bookshelf-item:hover{border-color:#ffb00040}.bookshelf-cover{width:56px;height:80px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,176,0,.15)}.bookshelf-info{display:flex;flex-direction:column;gap:4px;min-width:0}.bookshelf-book-title{font-family:var(--font-display);font-size:var(--text-md);color:var(--color-amber)}.bookshelf-author{font-size:var(--text-sm);color:var(--color-amber-dim)}.bookshelf-year{font-size:var(--text-sm);color:#ffb000a6}.bookshelf-rating{font-size:var(--text-xs);color:var(--color-amber);letter-spacing:2px}.bookshelf-desc{margin:4px 0 0;font-size:var(--text-sm);color:#ffb000b3;line-height:var(--leading-snug)}.bookshelf-empty{font-size:var(--text-sm);color:var(--color-amber-dim)}@media(max-width:640px){.bookshelf-page{padding:24px 16px}}.vm-page{max-width:860px;width:100%;box-sizing:border-box;margin:0 auto;padding:40px 24px;font-family:var(--font-mono)}.vm-back{display:inline-block;font-size:var(--text-sm);color:var(--color-amber-dim);text-decoration:none;margin-bottom:28px}.vm-back:hover{color:var(--color-cyan)}.vm-shell{background:#0d0d0d;border:1px solid rgba(255,176,0,.2);border-radius:12px;padding:0;overflow:hidden;position:relative}.vm-header{background:#ffb0000d;border-bottom:1px solid rgba(255,176,0,.12);padding:12px 20px;display:flex;flex-direction:column;gap:4px}.vm-header-label{font-size:var(--text-xs);color:var(--color-amber);letter-spacing:.1em}.vm-header-sub{font-size:11px;color:var(--color-amber-dim)}.vm-header-sub code{background:#ffb0001a;padding:1px 5px;border-radius:3px;font-size:11px}.vm-screen{padding:28px 24px 24px;display:flex;flex-direction:column;align-items:center;gap:20px;background:#121212}.vm-screen-label{font-size:11px;color:#555;letter-spacing:.2em;margin:0}.vm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:540px}.vm-btn{background:#1e1e1e;border:1px solid #444;border-radius:10px;padding:16px 12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:background .15s,border-color .15s;font-family:var(--font-mono)}.vm-btn:hover{border-color:#ffb00066}.vm-btn--active{background:#1a6b3c;border-color:#2ecc71;border-width:2px}.vm-btn-icon{font-size:28px;line-height:1}.vm-btn-name{font-size:var(--text-sm);color:#fff;font-weight:500}.vm-btn-price{font-size:12px;color:#888;transition:color .15s}.vm-btn--active .vm-btn-price{color:#2ecc71}.vm-display{width:100%;max-width:540px;box-sizing:border-box;border:1px solid #333;border-radius:8px;padding:14px 20px;text-align:center;font-size:var(--text-base);color:#555;background:#1e1e1e;transition:border-color .15s,color .15s}.vm-display--active{border-color:#2ecc71;color:#fff}.vm-eroga{background:#27ae60;border:1px solid #2ecc71;border-radius:8px;color:#fff;font-family:var(--font-mono);font-size:var(--text-base);font-weight:700;letter-spacing:.15em;padding:14px 48px;cursor:pointer;transition:background .1s}.vm-eroga:hover:not(:disabled){background:#1e8449}.vm-eroga:disabled{background:#1e1e1e;border-color:#333;color:#555;cursor:default}.vm-popup{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e1e1e;border:2px solid #2ecc71;border-radius:12px;padding:28px 48px;text-align:center;z-index:10;animation:vm-popup-in .15s ease}@keyframes vm-popup-in{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}.vm-popup-check{color:#2ecc71;font-size:var(--text-md);font-weight:700;margin:0 0 8px}.vm-popup-bev{color:#fff;font-size:var(--text-xl);margin:0}.vm-footer{border-top:1px solid rgba(255,176,0,.08);padding:10px 20px;font-size:11px;color:#444;text-align:center}@media(max-width:560px){.vm-page{padding:24px 16px}.vm-grid{grid-template-columns:repeat(2,1fr);max-width:320px}.vm-eroga{padding:12px 32px}.vm-popup{padding:20px 28px;width:80%}}
