/* All promo colors belong to the advertised title, never the host's theme. */
@font-face{font-family:"GN Oswald";src:url("assets/promo/jumpscare-oswald.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"GN Typewriter";src:url("assets/promo/jumpscare-typewriter.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"GN Besley";src:url("assets/promo/company-besley.ttf") format("truetype");font-weight:400 900;font-display:swap}
dialog.gn-dialog{--gn-paper:#f5eee4;--gn-accent:#f92f97;--gn-light:#fa59ac;--gn-surface:rgba(16,12,18,.94);--gn-border:#cba9bc38;--gn-clearance:32px;box-sizing:border-box;position:fixed;inset:0;width:min(540px,calc(100vw - 32px));max-width:none;height:fit-content;max-height:calc(100dvh - var(--gn-clearance));margin:auto;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;color:var(--gn-paper);font:400 15px/1.6 Arial,Helvetica,sans-serif;letter-spacing:normal;text-align:left;text-transform:none;box-shadow:none;isolation:isolate}
dialog.gn-dialog.gn-has-dots{--gn-clearance:124px}
.gn-panel{position:relative;border:1px solid var(--gn-border);background:var(--gn-surface);box-shadow:0 24px 140px #000d;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);transition:background 1s,border-color 1s}
dialog.gn-dialog::backdrop{background:rgba(6,4,8,.5);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
dialog.gn-dialog[data-feature="company"]{--gn-paper:#f0ece4;--gn-accent:#9cc8ef;--gn-light:#c4e1fa;--gn-surface:rgba(15,28,48,.94);--gn-border:#9cc8ef38}
.gn-dialog *,.gn-dialog *::before,.gn-dialog *::after{box-sizing:border-box}
.gn-dialog[open]{animation:gn-arrive .42s ease-out both}
.gn-dialog a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
.gn-dialog .gn-close{position:absolute;z-index:8;right:14px;top:14px;display:grid;place-items:center;width:42px;height:42px;min-width:42px;margin:0;padding:9px;border:1px solid #ffffff28;border-radius:50%;background:#14101bc4;color:var(--gn-paper);box-shadow:none;cursor:pointer;transition:color .2s,border-color .2s,background .2s;transform:none}
.gn-dialog .gn-close svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
.gn-dialog .gn-close:hover{color:var(--gn-light);border-color:var(--gn-accent);background:#17121fe6}
.gn-dialog a:focus-visible,.gn-dialog button:focus-visible{outline:2px solid var(--gn-light);outline-offset:-4px}
.gn-dialog .gn-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.gn-art{display:block;flex:none;position:relative;aspect-ratio:4/3;overflow:hidden;container-type:inline-size;background:#080609}
.gn-art::after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(#050308a8,transparent 28%,transparent 82%,#100c1280),radial-gradient(ellipse at center,transparent 35%,#08060990 100%)}
.gn-intro{position:absolute;z-index:4;top:25px;left:25px;max-width:calc(100% - 96px);font:400 14px/1.5 "GN Typewriter",monospace;letter-spacing:.12em;text-shadow:0 2px 4px #000,0 0 18px #000;pointer-events:none}
.gn-body{position:relative;display:flex;flex:1;flex-direction:column;padding:23px 25px 25px;border-top:1px solid #ffffff0d}
.gn-dialog .gn-blurb{margin:0 0 21px;font:400 15px/1.65 Arial,Helvetica,sans-serif;letter-spacing:normal;color:var(--gn-paper);opacity:.88}
.gn-dialog .gn-cta{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:49px;width:100%;padding:12px 18px;border:1px solid var(--gn-accent);border-radius:4px;background:var(--gn-accent);color:#100c12;font:500 18px/1.3 "GN Oswald","Arial Narrow",sans-serif;letter-spacing:.09em;text-align:center;transition:background .2s,border-color .2s,box-shadow .2s}
.gn-dialog .gn-cta:hover{background:var(--gn-light);border-color:var(--gn-light);box-shadow:0 0 22px #f92f9720}
.gn-vhs-scene{position:absolute;inset:0;background:radial-gradient(ellipse at 5% 45%,#890c536e,transparent 65%),radial-gradient(ellipse at 98% 60%,#164e99a0,transparent 65%),#080609}
.gn-vhs-scene::before{content:"";position:absolute;inset:0;background:url("assets/promo/jumpscare-room.webp") center 45%/cover;opacity:.18;filter:saturate(.7)}
.gn-cassette{aspect-ratio:1012/1800;position:absolute;display:block;height:88%;width:auto;max-width:none;left:50%;top:9%;object-fit:contain;mask:url("assets/promo/jumpscare-mask.svg") center/100% 100% no-repeat;-webkit-mask:url("assets/promo/jumpscare-mask.svg") center/100% 100% no-repeat;filter:drop-shadow(-12px 12px 17px #f92f9732) drop-shadow(15px 4px 15px #5bbaff38);transform:translateX(-50%) rotate(-4deg);animation:gn-tape-drift 9s ease-in-out infinite alternate}
.gn-scanlines{position:absolute;inset:0;pointer-events:none;opacity:.3;background:repeating-linear-gradient(0deg,#0008 0 1px,transparent 1px 3px);mix-blend-mode:multiply}
.gn-scanlines::after{content:"";position:absolute;inset:0;background:url("assets/promo/jumpscare-noise.svg");opacity:.16}
.gn-tracking{position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 47%,#ffffff0a 49%,#ffffff0c 50%,transparent 52%);transform:translateY(-100%);animation:gn-tracking 13s linear infinite}
.gn-slide[data-feature="company"] .gn-art{background:radial-gradient(ellipse at 50% 43%,#2c4257 0,#141f30 49%,#0b111b 88%)}
.gn-slide[data-feature="company"] .gn-art::after{background:linear-gradient(#0b111b88,transparent 27%,transparent 85%,#0f1c3038)}
.gn-slide[data-feature="company"] .gn-intro{font:500 12px/1.5 Arial,Helvetica,sans-serif;letter-spacing:.19em;color:#c4e1fa}
.gn-slide[data-feature="company"] .gn-cta{font:600 14px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.12em;color:#0b111b}
.gn-slide[data-feature="company"] .gn-cta:hover{box-shadow:0 0 22px #9cc8ef20}
.gn-company-rig{display:block;position:absolute;width:64%;aspect-ratio:1600/1504;left:18%;top:50%;transform:translateY(-50%);transform-origin:center;animation:gn-company-heartbeat 5.4s cubic-bezier(.22,.65,.35,1) infinite}
.gn-tray{display:block;position:absolute;width:100%;height:100%;inset:0;object-fit:contain}
.gn-company-print{position:absolute;top:33.333%;left:50%;width:max-content;font-size:14.1cqi;transform:translate(-50%,-50%);line-height:1.12;color:#f0ece4;font-family:"GN Besley",Georgia,serif}
/* Match Company: broad shadow behind the assembled wordmark; only tight,
   proportional contact shadows between letters and the bright underline. */
.gn-company-wordmark{display:flex;position:relative;align-items:baseline;width:max-content;margin:0;font:700 1em/1.12 "GN Besley",Georgia,serif;letter-spacing:-.035em;white-space:nowrap;isolation:isolate;text-shadow:none;filter:drop-shadow(0 .034091em .028409em #000c) drop-shadow(0 .079545em .102273em #000b)}
.gn-company-wordmark>span{position:relative;z-index:1;display:inline-block;transform:translate(var(--arc-center-x),calc(var(--lift) + var(--arc-center-y))) rotate(var(--tilt)) translateY(var(--letter-center-shift,0em)) scale(var(--letter-scale,1));transform-origin:50% 86%;-webkit-text-stroke:1px #d2d1cd;paint-order:stroke fill;filter:drop-shadow(0 .022727em .011364em #0009)}
.gn-company-wordmark>span:first-child{--letter-center-shift:.243486em;--letter-scale:1.017628;transform-origin:50% 89.0476%}
.gn-company-wordmark>.gn-letter-p{filter:drop-shadow(.011364em .034091em .018182em #000d)}
.gn-title-rules{position:absolute;left:0;top:0;width:100%;height:1.3em;overflow:visible;z-index:0;filter:drop-shadow(0 .022727em .011364em #0009)}
.gn-title-rules path{fill:none;stroke-linecap:butt}.gn-rule-face{stroke-width:9}.gn-rule-edge{stroke:#d2d1cd}
.gn-company-subtitle{position:absolute;left:50%;top:52%;width:max-content;transform:translate(-50%,-50%);font:700 3.8cqi/1.4 "GN Besley",Georgia,serif;color:#f0ece4;white-space:nowrap;letter-spacing:-.025em;text-shadow:0 3px 2.5px #000c,0 7px 9px #000b}
.gn-company-subtitle>span{display:inline-block;transform-origin:50% 85%}
.gn-sticker{position:absolute;left:20.3%;top:70%;width:14%;height:auto;transform:rotate(-8deg);filter:drop-shadow(1px 1px 1px #0007)}
.gn-dots{position:absolute;top:calc(100% + 16px);left:0;right:0;display:flex;align-items:center;justify-content:center;gap:7px;height:30px;margin:0}
.gn-dialog .gn-dot{display:grid;place-items:center;width:30px;height:30px;margin:0;padding:0;border:0;background:none;color:var(--gn-accent);cursor:pointer}
.gn-dot::before{content:"";box-sizing:border-box;width:16px;height:16px;border:2px solid currentColor;border-radius:50%}.gn-dot[aria-current="true"]::before{background:currentColor}
@keyframes gn-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes gn-tape-drift{from{transform:translateX(-50%) rotate(-4deg) translateY(0)}to{transform:translateX(-50%) rotate(-2deg) translateY(-3px)}}
@keyframes gn-tracking{to{transform:translateY(100%)}}
/* Three soft double beats, then a two-second rest. Keep the center anchored. */
@keyframes gn-company-heartbeat{0%,5.5%,10.5%,25%,30.5%,35.5%,50%,55.5%,60.5%,100%{transform:translateY(-50%) scale(1)}2.5%,27.5%,52.5%{transform:translateY(-50%) scale(1.018)}7%,32%,57%{transform:translateY(-50%) scale(1.009)}}
.gn-dialog:not([open]) *,.gn-dialog.gn-asleep *{animation-play-state:paused!important}
.gn-dialog.gn-quiet,.gn-dialog.gn-quiet *{animation:none!important}
@media(prefers-reduced-motion:reduce){.gn-dialog,.gn-dialog *{animation:none!important}}
@media(max-width:420px){.gn-intro{top:20px;left:20px;font-size:11px}.gn-body{padding:19px 20px 20px}.gn-dialog .gn-blurb{font-size:14px}.gn-dialog .gn-close{top:10px;right:10px}.gn-slide[data-feature="company"] .gn-intro{font-size:10px}}
@media(max-height:600px) and (min-width:600px){dialog.gn-dialog{width:480px}.gn-art{aspect-ratio:16/9}.gn-company-rig{width:53%;left:23.5%}.gn-company-print{font-size:10.4cqi}.gn-company-subtitle{font-size:2.8cqi}.gn-intro{font-size:11px}.gn-body{padding:16px 22px 20px}.gn-dialog .gn-blurb{margin-bottom:14px}}

/* Both slides share one grid cell: copy never shifts the modal between pages. */
.gn-content{display:grid;max-height:calc(100dvh - var(--gn-clearance) - 2px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff40 transparent}
.gn-slide{--gn-paper:#f5eee4;--gn-accent:#f92f97;--gn-light:#fa59ac;grid-area:1/1;min-width:0;display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1s ease,visibility 0s linear 1s}
.gn-slide[data-feature="company"]{--gn-paper:#f0ece4;--gn-accent:#9cc8ef;--gn-light:#c4e1fa}
.gn-slide.gn-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 1s ease,visibility 0s}
.gn-slide:not(.gn-active) *{animation-play-state:paused!important}
.gn-dialog .gn-dot{transition:color 1s}

/* Match the Jump Scare cover: its original blank artwork covers only the first exclamation. */
.gn-cassette img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.gn-cassette-patch{clip-path:polygon(74.977540% 19.070000%,83.290000% 19.070000%,83.290000% 37.856343%,80.574048% 39.105681%,74.977540% 39.105681%)}
