@font-face{font-family:AdwaitaMono;src:url('../fonts/AdwaitaMono-Site.woff2') format('woff2'),url('../fonts/AdwaitaMono-Site.ttf') format('truetype');font-display:swap}

.grain-field{position:fixed;inset:0;z-index:9999;overflow:hidden;pointer-events:none;isolation:isolate;--grain-x:50vw;--grain-y:50vh;-webkit-mask-image:radial-gradient(circle 70vmax at var(--grain-x) var(--grain-y),#000 0%,#000c 20%,#0007 46%,transparent 76%);mask-image:radial-gradient(circle 70vmax at var(--grain-x) var(--grain-y),#000 0%,#000c 20%,#0007 46%,transparent 76%)}
.grain-field::after{content:"";position:absolute;inset:0 0 -512px;background:url('../assets/grain-frames.webp') repeat;opacity:.1;mix-blend-mode:screen;animation:grainFrames .4s steps(4,end) infinite}
@keyframes grainFrames{to{transform:translateY(-512px)}}
@media(prefers-reduced-motion:reduce){.grain-field::after{animation:none}}

.scene-frame{position:relative;overflow:hidden;background:#050608}.scene-frame::before,.scene-frame::after{content:"";position:absolute;inset:0;pointer-events:none}.scene-frame::before{z-index:2;border:1px solid #aab3bc4d}.scene-frame::after{z-index:1}.scene-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
#globe-container{position:absolute;inset:0;overflow:hidden}#globe-container canvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}

body{background:radial-gradient(ellipse 40% 48% at 60% 38%,#171a1f 0%,#08090b 55%,#020203 100%)}
.revision-shell{min-height:100svh;padding-bottom:20px;overflow:hidden}
.revision-shell::before,.revision-shell::after{display:none}
.revision-shell .site-nav{justify-content:center;gap:clamp(21px,3.2vw,52px)}
.revision-shell .site-nav a{font:100 21px/1 HelveticaNeue-UltraLight,Arial,sans-serif;letter-spacing:.025em;text-transform:lowercase;color:#edf3f5;text-shadow:0 0 7px #c7d8e744}
.revision-shell .site-nav a[aria-current=page]::after{right:0;bottom:-13px;height:1px}
.chrome-heading{position:absolute;left:50%;top:12px;z-index:5;width:min(1080px,92%);height:225px;transform:translateX(-50%);filter:drop-shadow(12px 17px 16px #000)}
.chrome-heading h1{display:grid;place-items:center;width:100%;height:100%;margin:0;color:transparent;background:url('../3js/chrome.webp') center/100% 100% no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:.5px #d6e2eb;text-align:center;font:100 clamp(80px,16vw,210px)/1 HelveticaNeue-UltraLight,Arial,sans-serif;letter-spacing:-.025em}
.chrome-heading canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.chrome-heading.ready h1{opacity:0}
.radio-title canvas{transform:translateX(5%)}
.guest-title canvas{transform:translateX(8%)}

/* The home page is one object: the globe box fills it. */
.home-main{padding-top:0}
.home-object{position:relative;z-index:1;height:min(69vh,710px);min-height:540px;margin:4px 0 0}
.home-object .scene-frame{position:absolute;left:50%;top:0;z-index:1;width:100%;height:100%;min-height:0;overflow:hidden;border:1px solid #71777e;background:#050608;transform:translateX(-50%);box-shadow:0 16px 0 #15191d,0 18px 0 #737b824d,0 30px 38px #000}
.home-object .scene-frame::before{inset:14px;border-color:#aab3bc4d}
.home-object .scene-frame::after{background:radial-gradient(ellipse at center,transparent 48%,#030405a6 100%)}
.home-object .scene-frame iframe{pointer-events:auto}

/* Radio: the chrome sound object replaces the old ASCII mast. */
.radio-main,.guest-main,.log-main{position:relative;min-height:calc(100svh - 142px);padding-top:47px}
.radio-title{top:12px;width:min(980px,88%);height:220px}
.radio-visual{position:absolute;left:50%;top:11%;width:100%;height:77%;transform:translateX(-50%);border-radius:50%;overflow:hidden;filter:drop-shadow(0 0 28px #b3c5d51c)}
.radio-visual::before{content:"";position:absolute;inset:7%;z-index:2;border:1px solid #c5d2d92d;border-radius:50%;pointer-events:none}
.radio-visual iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:auto}
.radio-status p{margin:14px 0 0;color:#abb2b6;font:14px/1.45 Arial,sans-serif}


/* Guestbook: the globe remains the primary artwork. */
.guest-title{top:12px;width:min(1250px,96%);height:195px}
.guest-globe{position:absolute;left:50%;top:19%;width:min(68vw,790px);height:min(63vw,700px);max-height:72vh;transform:translateX(-50%);border-radius:50%;overflow:hidden;mask-image:radial-gradient(circle,#000 52%,transparent 74%)}
.guest-globe #globe-container{position:absolute;inset:0;filter:brightness(1.6);opacity:.9}
.guest-globe canvas{cursor:grab;touch-action:pan-y;user-select:none}
.guest-globe canvas.is-dragging{cursor:grabbing}
.guestbook-open{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;max-width:1440px;margin:0 auto;padding:252px 4% 45px;align-items:start}
.guestbook-open .guest-globe{position:sticky;grid-column:2;grid-row:1;left:auto;top:24px;width:100%;height:min(46vw,640px);max-height:none;transform:none}
.guestbook-card .guestbook-heading{margin:0 0 24px;font-family:HelveticaNeue-UltraLight-Wide,HelveticaNeue-UltraLight,Arial,sans-serif;font-size:clamp(24px,14cqi,76px);font-weight:900;letter-spacing:-.075em;-webkit-text-stroke:.055em currentColor}
.guestbook-form{display:grid;gap:10px;color:#c0c9ce;font:16px/1.5 Arial,sans-serif}
.guestbook-form label:not(:first-child){margin-top:12px}
.guestbook-form label span{display:inline-block;margin-left:8px;color:#8e9ba3;font-size:12px}
.guestbook-form input,.guestbook-form textarea,.guestbook-form select{width:100%;min-width:0;padding:12px;border:1px solid #697780;border-radius:0;background:#05070955;color:#e8edf0;font:16px/1.5 Arial,sans-serif}
.guestbook-form textarea{resize:vertical}
.guestbook-form select option{background:#0b0e11}
.guestbook-form [hidden]{display:none}
.guestbook-form input:focus-visible,.guestbook-form textarea:focus-visible,.guestbook-form select:focus-visible{outline:1px solid #e8edf0;outline-offset:3px}
.guestbook-form button{width:max-content;padding:9px 24px;border:1px solid #89969e;border-radius:0;background:linear-gradient(#283138aa,#080c10aa);box-shadow:inset 0 1px #e8edf033;color:#e8edf0;font:100 24px/1 HelveticaNeue-UltraLight,Arial,sans-serif;cursor:pointer}
.guestbook-form button:disabled{opacity:.5;cursor:wait}
.guestbook-form [type=submit]{margin-top:12px}
.guestbook-location-row{position:relative}
#guestbook-location-choices{position:absolute;top:100%;left:0;right:0;z-index:10;max-height:260px;overflow-y:auto;margin:0;padding:0;border:1px solid #89969e;background:#0b0e11;box-shadow:0 6px 18px #000;list-style:none}
#guestbook-location-choices li{padding:10px 12px;cursor:pointer;border-bottom:1px solid #283138}
#guestbook-location-choices li:last-child{border-bottom:0}
#guestbook-location-choices li:hover,#guestbook-location-choices li[aria-selected=true]{background:#283138;color:#fff}
.guestbook-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#guestbook-status{min-height:1.5em;margin:0;color:#c0c9ce;font-size:14px}
#guestbook-entries{margin-top:25px;color:#c0c9ce;font:16px/1.55 Arial,sans-serif}
.guestbook-entry{padding:24px 0;border-top:1px solid #697780;overflow-wrap:anywhere}
.guestbook-entry h3{margin:0;color:#e8edf0;font:100 36px/1.1 HelveticaNeue-UltraLight,Arial,sans-serif}
.guestbook-entry-meta{margin:8px 0 18px;color:#8e9ba3;font-size:12px}
.guestbook-message{margin:0;white-space:pre-wrap}
.guestbook-credit{margin:30px 0 0;color:#8e9ba3;font:11px Arial,sans-serif}
@media(max-width:760px){.guest-main.guestbook-open{display:flex;flex-direction:column;gap:20px;min-height:0;padding:146px 4% 35px}.guestbook-open .guest-globe{position:relative;top:auto;height:min(85vw,380px);flex-shrink:0}}

/* The existing post is the content. */
.log-title{top:12px;width:min(800px,82%)}

@media(max-width:760px){
  .revision-shell .site-nav{gap:14px}
  .revision-shell .site-nav a{font-size:17px}
  .chrome-heading{top:2px;width:94%;height:135px}.chrome-heading h1{font-size:clamp(65px,16vw,120px)}
  .home-object{height:560px;min-height:0;margin-top:0}
  .home-object .scene-frame{left:50%;top:0;width:100%;height:100%;box-shadow:0 11px 0 #15191d,0 12px 0 #737b824d,0 26px 28px #000}
  .radio-main,.guest-main,.log-main{min-height:860px;padding-top:42px}
  .radio-title,.guest-title,.log-title{top:2px}
  .guest-title{width:98%}.guest-title h1{font-size:clamp(44px,11vw,80px)}
  .guest-title canvas{transform:translateX(4%)}
  .radio-visual{top:17%;width:120%;height:57%}
  .guest-globe{top:25%;width:125vw;height:125vw;max-height:570px}
}
@media(max-width:430px){
  .home-object{height:500px}.home-object .scene-frame{height:100%}
  .radio-main,.guest-main,.log-main{min-height:740px}
  .radio-title,.guest-title,.log-title{top:8px;height:112px}
  .radio-visual{top:16%;height:54%}
  .guest-globe{top:25%}
}
