/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Sep 28 2026 | 18:31:42 */
/* Fabi's interactive workshop: keep the navy, cyan and amber brand palette. */
#fabi.fabi-game-mode{background:#080d16!important;color:#f1f6fc!important;overflow-x:hidden}
#fabi.fabi-game-mode>.shell{width:min(1240px,calc(100% - 40px));max-width:1240px;margin-inline:auto}
#fabi.fabi-game-mode .nav{position:relative;z-index:20;margin-bottom:14px}
#fabi #fabi-game{position:relative;display:grid;gap:20px;padding:20px 0 36px;color:#f1f6fc}
#fabi .game-intro{position:relative;z-index:2;display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;padding:12px 12px 0}
#fabi .game-intro .hero-overlay{position:relative!important;inset:auto!important;left:auto!important;top:auto!important;order:0!important;width:100%!important;max-width:100%!important;padding:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important}
#fabi .game-intro .hero-overlay .eyebrow{margin-bottom:10px!important}
#fabi .game-intro .hero-overlay h1{max-width:900px!important;margin:0 auto 12px!important;font-size:clamp(30px,4vw,52px)!important;line-height:1.04!important;text-align:center!important;text-shadow:0 5px 35px rgba(0,0,0,.55)!important}
#fabi .game-intro .hero-details{position:relative!important;inset:auto!important;order:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;max-width:820px!important;width:100%!important;margin:0!important;padding:0!important;text-align:center!important}
#fabi .game-intro .hero-details .intro{max-width:780px!important;width:100%!important;margin:0!important;font-size:16px!important;line-height:1.65!important;color:#c5d1de!important;text-align:center!important}
#fabi .game-intro .hero-details .buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:16px 0 0!important}
#fabi .game-intro .hero-details .hero-note{margin:12px 0 0!important;text-align:center!important}
#fabi .game-world{position:relative;isolation:isolate;min-height:650px;border:1px solid rgba(135,191,218,.48);border-radius:26px;overflow:hidden;perspective:1400px;background:#080d16;box-shadow:0 28px 80px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.04)}
#fabi .game-world:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(5,10,17,.28) 0%,rgba(5,10,17,.52) 38%,rgba(5,10,17,.9) 100%),linear-gradient(90deg,rgba(0,221,255,.08),transparent 33%,transparent 70%,rgba(255,174,87,.09));pointer-events:none}
#fabi .game-world:after{content:"";position:absolute;z-index:1;left:-10%;right:-10%;bottom:-30%;height:54%;transform:perspective(600px) rotateX(48deg);transform-origin:center top;background:linear-gradient(180deg,rgba(16,32,46,.72),rgba(6,11,19,.98)),repeating-linear-gradient(90deg,transparent 0 93px,rgba(69,205,237,.1) 94px 95px),repeating-linear-gradient(0deg,transparent 0 68px,rgba(69,205,237,.09) 69px 70px);border-top:1px solid rgba(76,213,244,.45);box-shadow:0 -18px 42px rgba(34,201,235,.13);pointer-events:none}
#fabi .game-backdrop{position:absolute!important;z-index:0!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;border-radius:inherit!important;overflow:hidden!important;opacity:.82}
#fabi .game-backdrop .hero-photo{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border-radius:inherit!important;background:none!important}
#fabi .game-backdrop .hero-photo img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 46%!important;filter:saturate(.92) brightness(.76)!important}
#fabi .game-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,12,20,.04),rgba(6,12,20,.35) 36%,#080d16 100%);pointer-events:none}
#fabi .game-fog{position:absolute;z-index:2;pointer-events:none;width:42%;height:220px;top:5%;filter:blur(45px);opacity:.16;background:radial-gradient(ellipse,rgba(46,211,241,.48),transparent 70%);animation:fabiGameGlow 8s ease-in-out infinite alternate}
#fabi .game-fog.right{right:-9%;top:12%;background:radial-gradient(ellipse,rgba(252,169,88,.5),transparent 70%);animation-delay:-4s}
#fabi .game-hud{position:absolute;z-index:4;top:22px;left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;pointer-events:none}
#fabi .game-hud-box{padding:11px 14px;border:1px solid rgba(119,194,218,.43);border-radius:12px;background:rgba(7,15,25,.76);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.2)}
#fabi .game-hud .game-eyebrow{display:block;color:#81eaff;font:700 10px/1.3 ui-monospace,monospace;letter-spacing:.19em;text-transform:uppercase}
#fabi .game-hud strong{display:block;margin-top:5px;color:#f4f8fc;font-size:14px;letter-spacing:.02em}
#fabi .game-level{color:#c8d5e2;font:700 10px/1.4 ui-monospace,monospace;letter-spacing:.13em;text-align:right;text-transform:uppercase}
#fabi .game-level b{color:#ffc47b}
#fabi .game-door-list{position:absolute;z-index:5;left:24px;right:24px;top:145px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:12px}
#fabi .game-door{position:relative;min-width:0;min-height:270px;padding:0 5px 12px;border:0;background:transparent;color:#f3f7fc;cursor:pointer;text-align:center;transition:transform .25s ease,filter .25s ease;transform-style:preserve-3d}
#fabi .game-door:hover,#fabi .game-door:focus-visible{transform:translateY(-8px);filter:brightness(1.18);outline:none}
#fabi .game-door:focus-visible .game-portal{outline:2px solid #65e5ff;outline-offset:4px}
#fabi .game-door .game-number{display:block;margin:0 auto 8px;color:#b9cad8;font:700 9px/1.2 ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase}
#fabi .game-portal{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:164px;padding:14px 7px 18px;border:2px solid rgba(151,201,220,.68);border-bottom-color:rgba(244,175,103,.8);border-radius:68px 68px 9px 9px;background:linear-gradient(180deg,rgba(8,18,30,.78),rgba(12,29,44,.88));box-shadow:inset 0 0 0 5px rgba(255,255,255,.035),inset 0 0 34px rgba(50,208,239,.12),0 15px 25px rgba(0,0,0,.35);transform:perspective(600px) rotateY(-3deg);transition:box-shadow .25s,border-color .25s,background .25s}
#fabi .game-door:nth-child(even) .game-portal{transform:perspective(600px) rotateY(3deg);border-bottom-color:rgba(75,212,239,.86)}
#fabi .game-portal:before{content:"";position:absolute;inset:11px 10px 10px;border:1px solid rgba(94,220,244,.3);border-radius:58px 58px 5px 5px;background:radial-gradient(ellipse at 50% 38%,rgba(66,211,243,.2),transparent 63%);box-shadow:inset 0 0 22px rgba(52,207,240,.13)}
#fabi .game-door:hover .game-portal,#fabi .game-door:focus-visible .game-portal{border-color:#7beaff;box-shadow:inset 0 0 0 5px rgba(255,255,255,.07),inset 0 0 46px rgba(50,208,239,.32),0 0 28px rgba(50,208,239,.3),0 20px 30px rgba(0,0,0,.42)}
#fabi .game-door:nth-child(3n) .game-portal:before{background:radial-gradient(ellipse at 50% 38%,rgba(246,173,99,.22),transparent 63%)}
#fabi .game-door-icon{position:relative;z-index:1;display:grid;place-items:center;width:62px;height:62px;border:1px solid rgba(118,222,242,.58);border-radius:18px;background:rgba(6,15,25,.68);color:#8deeff;font-size:28px;box-shadow:0 0 24px rgba(43,203,234,.16)}
#fabi .game-door:nth-child(3n) .game-door-icon{color:#ffc27c;border-color:rgba(255,194,124,.55);box-shadow:0 0 24px rgba(255,167,87,.16)}
#fabi .game-door strong{display:block;margin:9px 0 3px;color:#f5f8fc;font-size:12px;line-height:1.2}
#fabi .game-door small{display:block;min-height:24px;color:#b3c2d0;font-size:9px;line-height:1.35}
#fabi .game-player{position:absolute;z-index:8;left:50%;top:86%;width:62px;height:108px;padding:0;border:0;background:transparent;transform:translate(-50%,-100%);transition:left .62s cubic-bezier(.2,.75,.25,1),top .62s cubic-bezier(.2,.75,.25,1);filter:drop-shadow(0 13px 8px rgba(0,0,0,.6));cursor:pointer}
#fabi .game-player svg{display:block;width:100%;height:100%;overflow:visible}
#fabi .game-player.is-walking{animation:fabiPlayerBob .25s ease-in-out infinite alternate}
#fabi .game-player:focus-visible{outline:2px solid #78eaff;outline-offset:4px;border-radius:20px}
#fabi .game-speech{position:absolute;z-index:9;left:50%;top:calc(86% - 117px);transform:translateX(-50%);max-width:260px;padding:8px 11px;border:1px solid rgba(120,211,233,.6);border-radius:10px;background:rgba(7,15,24,.9);color:#f1f6fc;font-size:11px;text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.3);pointer-events:none;white-space:nowrap}
#fabi .game-floor-label{position:absolute;z-index:4;left:24px;bottom:22px;color:#8fa5b7;font:700 9px/1.4 ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase}
#fabi .game-help{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 17px;border:1px solid rgba(124,183,204,.3);border-radius:14px;background:linear-gradient(105deg,rgba(16,31,44,.94),rgba(10,19,30,.94));color:#b9c8d6;font-size:12px}
#fabi .game-help strong{color:#74e6fa}
#fabi .game-controls{display:flex;gap:7px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
#fabi .game-key{display:inline-flex;align-items:center;justify-content:center;min-width:27px;height:25px;padding:0 7px;border:1px solid rgba(144,182,198,.45);border-bottom-width:2px;border-radius:6px;background:#0b1520;color:#dbe6ee;font:700 10px ui-monospace,monospace}
#fabi #fabi-game-ribbon{position:relative;z-index:2;margin:0!important;border:1px solid rgba(114,185,210,.34);border-radius:12px;background:rgba(10,18,28,.88);box-shadow:0 12px 30px rgba(0,0,0,.18)}
#fabi #fabi-game-ribbon .shell{display:flex;justify-content:space-around;gap:14px;padding:14px 16px;color:#b7c7d5;font:700 9px/1.4 ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}
#fabi #fabi-game-ribbon b{color:#81eaff}
#fabi .game-dialog{width:min(1080px,calc(100vw - 32px));max-width:1080px;max-height:min(88vh,940px);margin:auto;padding:0;overflow:hidden;border:1px solid rgba(131,196,218,.68);border-radius:22px;background:#080d16;color:#f1f6fc;box-shadow:0 35px 120px rgba(0,0,0,.75),0 0 44px rgba(31,194,227,.16)}
#fabi .game-dialog::backdrop{background:rgba(2,6,12,.78);backdrop-filter:blur(9px)}
#fabi .game-dialog-frame{max-height:min(88vh,940px);overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 85% 0%,rgba(33,188,220,.11),transparent 38%),#080d16}
#fabi .game-dialog-bar{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid rgba(128,180,200,.28);background:rgba(7,14,23,.94);backdrop-filter:blur(16px)}
#fabi .game-dialog-label{color:#77e5f8;font:700 10px ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase}
#fabi .game-back-button{display:inline-flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid rgba(255,184,112,.56);border-radius:9px;background:linear-gradient(130deg,rgba(18,39,53,.95),rgba(19,24,34,.95));color:#f3f6fa;font-size:12px;font-weight:700;cursor:pointer}
#fabi .game-back-button:hover{border-color:#ffbf77;box-shadow:0 0 18px rgba(255,180,100,.16)}
#fabi .game-dialog-content{padding:8px 22px 22px}
#fabi .game-dialog-content>section{margin:0!important;padding-top:28px!important;padding-bottom:30px!important;border-bottom:1px solid rgba(130,178,197,.22)!important;background:transparent!important;color:#f1f6fc!important}
#fabi .game-dialog-content>section:last-child{border-bottom:0!important}
#fabi .game-dialog-content>section .shell{width:100%!important;max-width:100%!important;padding-left:0!important;padding-right:0!important}
#fabi.fabi-game-mode #fabi-game-archive{display:none!important}
#fabi.fabi-game-mode>.shell>footer{margin-top:20px!important}
@keyframes fabiGameGlow{from{transform:translate3d(-5%,0,0) scale(.9);opacity:.11}to{transform:translate3d(7%,8px,0) scale(1.16);opacity:.24}}
@keyframes fabiPlayerBob{from{translate:0 0}to{translate:0 -4px}}
@media(max-width:1100px){#fabi .game-door-list{grid-template-columns:repeat(4,minmax(0,1fr));top:122px;gap:9px}#fabi .game-door{min-height:210px}#fabi .game-portal{height:125px}#fabi .game-door-list .game-door:nth-child(n+5){margin-top:-2px}#fabi .game-world{min-height:690px}#fabi .game-player{top:88%}#fabi .game-speech{top:calc(88% - 117px)}}
@media(max-width:700px){#fabi.fabi-game-mode>.shell{width:calc(100% - 24px)}#fabi #fabi-game{gap:13px;padding-top:12px}#fabi .game-intro{padding:4px 4px 0}#fabi .game-intro .hero-overlay h1{font-size:clamp(28px,8vw,40px)!important}#fabi .game-intro .hero-details .intro{font-size:14px!important}#fabi .game-world{min-height:970px;border-radius:18px}#fabi .game-backdrop .hero-photo img{object-position:58% center!important}#fabi .game-hud{top:12px;left:12px;right:12px;gap:8px}.game-hud-box{padding:9px 10px!important}#fabi .game-hud .game-eyebrow{font-size:8px}#fabi .game-hud strong{font-size:11px}#fabi .game-level{font-size:8px}#fabi .game-door-list{top:126px;left:12px;right:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px}#fabi .game-door{min-height:182px;padding:0 4px 8px}#fabi .game-door .game-number{font-size:8px;margin-bottom:5px}#fabi .game-portal{height:104px;border-radius:48px 48px 8px 8px;padding:8px 5px 10px}#fabi .game-portal:before{inset:8px 7px 7px;border-radius:40px 40px 5px 5px}#fabi .game-door-icon{width:48px;height:48px;border-radius:14px;font-size:22px}#fabi .game-door strong{font-size:11px;margin:7px 0 2px}#fabi .game-door small{font-size:8px;min-height:18px}#fabi .game-player{width:52px;height:90px;top:91%}#fabi .game-speech{top:calc(91% - 98px);max-width:200px;font-size:9px}#fabi .game-floor-label{left:12px;bottom:12px;font-size:7px}#fabi .game-help{align-items:flex-start;flex-direction:column;padding:12px;font-size:11px}#fabi .game-controls{justify-content:flex-start}#fabi #fabi-game-ribbon .shell{justify-content:flex-start;overflow:auto;white-space:nowrap;padding:12px;font-size:8px}#fabi .game-dialog{width:calc(100vw - 16px);max-height:92vh;border-radius:16px}#fabi .game-dialog-frame{max-height:92vh}#fabi .game-dialog-content{padding:2px 13px 15px}#fabi .game-dialog-bar{padding:10px 12px}#fabi .game-back-button{padding:8px 10px;font-size:10px}}
@media(prefers-reduced-motion:reduce){#fabi .game-fog,#fabi .game-player.is-walking{animation:none!important}#fabi .game-door,#fabi .game-player{transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Keep room content inside the responsive portal window. */
dialog.game-dialog{width:min(1320px,calc(100vw - 32px))!important;max-width:1320px!important}
dialog.game-dialog .game-dialog-content{box-sizing:border-box!important;overflow-x:hidden!important}
dialog.game-dialog .game-dialog-content>section{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;overflow-x:hidden!important}
dialog.game-dialog .game-dialog-content>section>.shell{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
dialog.game-dialog .game-dialog-content .sectionhead{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
dialog.game-dialog .game-dialog-content .projects{width:100%!important;min-width:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;box-sizing:border-box!important}
dialog.game-dialog .game-dialog-content .project{min-width:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important}
@media(max-width:760px){dialog.game-dialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important}dialog.game-dialog .game-dialog-content .sectionhead{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important}dialog.game-dialog .game-dialog-content .sectionhead>p{width:auto!important;max-width:100%!important}dialog.game-dialog .game-dialog-content .projects{grid-template-columns:minmax(0,1fr)!important}}

/* Override legacy fixed section widths inside the portal modal. */
#fabi.fabi-game-mode .game-dialog-content>section.content{width:100%!important;max-width:100%!important;min-width:0!important}
#fabi.fabi-game-mode .game-dialog-content>section.content>.shell{width:100%!important;max-width:100%!important;min-width:0!important}
#fabi.fabi-game-mode .game-dialog-content>section.content .projects{width:100%!important;max-width:100%!important;min-width:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
#fabi.fabi-game-mode .game-dialog-content>section.content .project{min-width:0!important;width:100%!important;max-width:100%!important}
@media(max-width:760px){#fabi.fabi-game-mode .game-dialog-content>section.content>.shell{width:100%!important}#fabi.fabi-game-mode .game-dialog-content>section.content .sectionhead{grid-template-columns:minmax(0,1fr)!important}#fabi.fabi-game-mode .game-dialog-content>section.content .projects{grid-template-columns:minmax(0,1fr)!important}}

/* Rooms beyond the hub: perspective walls, illuminated doors, tiled floor. */
#fabi .game-room-stage[hidden],#fabi .game-dialog-content[hidden]{display:none!important}
#fabi .game-room-stage{--room-glow:rgba(67,205,239,.32);position:relative;isolation:isolate;min-height:640px;overflow:hidden;perspective:1000px;background:radial-gradient(ellipse at 50% 12%,var(--room-glow),transparent 47%),linear-gradient(110deg,#08121e,#172a3b 13%,#0a1624 20% 80%,#172a3b 87%,#08121e);box-shadow:inset 0 0 110px #02070c}
#fabi .game-room-stage[data-theme="pink-fuhrpark"]{--room-glow:rgba(232,85,155,.37)}
#fabi .game-room-stage[data-theme="creator"]{--room-glow:rgba(159,96,210,.35)}
#fabi .game-room-stage[data-theme="kontakt"]{--room-glow:rgba(235,169,86,.31)}
#fabi .game-room-stage:before{content:"";position:absolute;z-index:0;inset:0 0 24%;clip-path:polygon(10% 0,90% 0,100% 100%,0 100%);background:repeating-linear-gradient(90deg,transparent 0 110px,rgba(135,179,198,.08) 111px 113px),linear-gradient(#162c3d,#06111e);pointer-events:none}
#fabi .game-room-stage:after{content:"";position:absolute;z-index:1;left:-20%;right:-20%;bottom:-31%;height:62%;transform:rotateX(54deg);transform-origin:center top;border-top:2px solid rgba(111,206,226,.45);background:repeating-linear-gradient(90deg,transparent 0 115px,rgba(86,159,180,.16) 116px 118px),repeating-linear-gradient(0deg,transparent 0 73px,rgba(86,159,180,.13) 74px 76px),linear-gradient(#263a4b,#07121f 85%);box-shadow:0 -22px 54px var(--room-glow);pointer-events:none}
#fabi .game-room-light{position:absolute;z-index:1;left:50%;top:0;width:min(42%,390px);height:22px;transform:translateX(-50%);border:3px solid #405465;border-top:0;border-radius:0 0 18px 18px;background:linear-gradient(#d2f7ff,#5bdeee);box-shadow:0 6px 35px 8px var(--room-glow),0 70px 150px 30px var(--room-glow);pointer-events:none}
#fabi .game-room-sign{position:relative;z-index:4;display:grid;justify-items:center;gap:6px;padding:45px 20px 18px;text-align:center;pointer-events:none}
#fabi .game-room-level{color:#81eaff;font:700 10px ui-monospace,monospace;letter-spacing:.22em}
#fabi .game-room-name{color:#f5f8fc;font-size:clamp(25px,3vw,43px);line-height:1.1;text-shadow:0 7px 20px #000}
#fabi .game-room-guide{color:#b5c9d7;font-size:12px}
#fabi .game-subdoors{position:relative;z-index:3;display:flex;align-items:end;justify-content:center;gap:clamp(10px,2vw,28px);min-height:390px;margin:0 auto;padding:25px 5% 80px}
#fabi .game-subdoor{position:relative;display:flex;flex:1 1 0;flex-direction:column;align-items:center;gap:14px;max-width:228px;min-width:0;height:292px;padding:19px 12px;border:8px ridge #355368;border-bottom-width:14px;border-radius:90px 90px 5px 5px;background:radial-gradient(ellipse at 50% 43%,rgba(53,208,238,.23),transparent 62%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(120,191,211,.08) 32px 33px),linear-gradient(100deg,#08121d,#152838 53%,#07111c);color:#f4f8fb;text-align:center;cursor:pointer;box-shadow:inset 0 0 0 4px #0c1925,inset 0 0 60px #03070d,10px 18px 25px #0009,0 0 22px var(--room-glow);transform:perspective(650px) rotateY(-5deg);transform-origin:bottom;transition:transform .3s,border-color .3s,box-shadow .3s}
#fabi .game-subdoor:nth-child(even){transform:perspective(650px) rotateY(5deg)}
#fabi .game-subdoor:before{content:"";position:absolute;inset:10px 9px 11px;border:1px solid rgba(125,207,229,.23);border-radius:75px 75px 3px 3px;pointer-events:none}
#fabi .game-subdoor:after{content:"";position:absolute;right:12px;top:57%;width:8px;height:24px;border-radius:4px;background:#d2c8aa;box-shadow:0 0 14px #8de7f7,0 0 0 3px #1e3543;pointer-events:none}
#fabi .game-subdoor:hover,#fabi .game-subdoor:focus-visible{outline:2px solid #a1efff;outline-offset:3px;transform:perspective(650px) rotateY(0) translateY(-12px);border-color:#65b6d0;box-shadow:inset 0 0 0 4px #0c1925,inset 0 0 60px #12394a,14px 28px 38px #000a,0 0 32px var(--room-glow)}
#fabi .game-subnumber{color:#8bcbdc;font:700 10px ui-monospace,monospace;letter-spacing:.17em}
#fabi .game-subicon{display:grid;place-items:center;width:62px;height:62px;margin-top:35px;border:1px solid rgba(139,218,234,.56);border-radius:50%;background:#142c3d;color:#9beafa;font-size:30px;box-shadow:0 0 26px rgba(78,215,241,.27)}
#fabi .game-subdoor strong{display:block;max-width:100%;margin:auto 0 10px;font-size:clamp(12px,1.3vw,17px);line-height:1.25;text-shadow:0 3px 10px #000;overflow-wrap:anywhere}
#fabi .game-room-avatar{position:absolute;z-index:7;inset:0;pointer-events:none}
#fabi .game-room-avatar .game-player{top:86%;pointer-events:none}
#fabi .game-room-floor{position:absolute;z-index:3;left:10%;right:10%;bottom:12px;height:7px;border-radius:50%;background:rgba(71,177,201,.2);filter:blur(8px);pointer-events:none}
#fabi .game-dialog-content .game-focus{scroll-margin-top:70px;outline:2px solid rgba(124,231,249,.9)!important;outline-offset:7px!important;box-shadow:0 0 36px rgba(67,205,239,.2)!important;border-radius:8px}
#fabi .game-door .game-portal{border-width:6px;border-style:ridge;border-color:#496a7b #263d4d #527080 #364f60;box-shadow:inset 0 0 0 5px #0a1721,inset 0 0 35px rgba(45,204,233,.18),7px 19px 24px #0009,0 0 20px rgba(44,185,216,.15)}
#fabi .game-door .game-portal:after{content:"";position:absolute;right:11px;top:62%;width:5px;height:14px;border-radius:3px;background:#b8c7c9;box-shadow:0 0 12px #81eaff}
@media(max-width:700px){#fabi .game-room-stage{min-height:650px}#fabi .game-room-sign{padding-top:38px}#fabi .game-room-guide{font-size:10px}#fabi .game-subdoors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;min-height:0;padding:24px 26px 100px}#fabi .game-subdoor{width:100%;height:170px;max-width:none;padding:10px 6px;border-width:5px;border-bottom-width:9px;border-radius:55px 55px 3px 3px}#fabi .game-subnumber{font-size:8px}#fabi .game-subicon{width:38px;height:38px;margin-top:8px;font-size:20px}#fabi .game-subdoor strong{font-size:11px;margin:auto 0 1px}#fabi .game-subdoor:after{right:6px;width:5px;height:15px}#fabi .game-room-avatar .game-player{top:91%;width:45px;height:79px}}
@media(prefers-reduced-motion:reduce){#fabi .game-subdoor{transition:none!important}}

/* Each door opens one focused topic page, never the whole parent section. */
#fabi .game-dialog-content>.game-topic-page{min-height:440px;padding:50px clamp(22px,6vw,92px) 70px!important;background:radial-gradient(ellipse at 88% 0%,rgba(56,194,225,.13),transparent 47%),linear-gradient(145deg,#0c1927,#08111d 74%)!important}
#fabi .game-topic-header{max-width:960px;margin:0 auto 28px;padding-bottom:22px;border-bottom:1px solid rgba(137,207,225,.34)}
#fabi .game-topic-index{display:block;margin-bottom:13px;color:#78e1f4;font:700 10px/1.5 ui-monospace,monospace;letter-spacing:.17em;text-transform:uppercase}
#fabi .game-topic-header h2{margin:0!important;color:#f5f8fc!important;font-size:clamp(28px,4vw,48px)!important;line-height:1.08!important}
#fabi .game-topic-body{max-width:960px;margin:0 auto;color:#c5d4e0;font-size:clamp(15px,1.45vw,18px);line-height:1.75}
#fabi .game-topic-body>p{max-width:760px;margin:0 0 22px}
#fabi .game-topic-body>.project,#fabi .game-topic-body>.card{width:100%!important;max-width:960px!important;margin:0!important;padding:clamp(18px,3vw,35px)!important;border:1px solid rgba(125,204,224,.38)!important;border-radius:20px!important;background:linear-gradient(145deg,#15283a,#0c1928)!important;box-shadow:0 22px 55px #0007!important}
#fabi .game-topic-body>.project .project-preview{height:auto;max-height:440px;aspect-ratio:16/8;margin:18px 0!important;overflow:hidden}
#fabi .game-topic-body>.project .project-preview img{width:100%;height:100%;object-fit:cover}
#fabi .game-topic-body>.project p,#fabi .game-topic-body>.card p{max-width:740px;font-size:clamp(15px,1.3vw,18px)!important;line-height:1.7!important}
#fabi .game-topic-body>.card .tags{margin-top:24px}
#fabi .game-topic-body>figure{max-width:960px;margin:0 0 24px!important}
#fabi .game-topic-body>figure img{display:block;width:100%;max-height:520px;height:auto;object-fit:cover;border-radius:18px}
#fabi .game-topic-body>.socialrow{display:flex;max-width:620px;margin:22px 0;padding:22px!important;border:1px solid rgba(125,204,224,.45);border-radius:14px;background:#16293a;color:#f5f8fc;text-decoration:none}
#fabi .game-topic-body>.socialrow:hover{border-color:#83e6f8;box-shadow:0 0 25px rgba(66,208,237,.18)}
#fabi .game-topic-body>.buttons{margin-top:24px}
#fabi .game-topic-body>p:only-child{max-width:850px;padding:28px 30px;border-left:3px solid #78e1f4;background:rgba(25,49,68,.54);border-radius:0 14px 14px 0}
@media(max-width:700px){#fabi .game-dialog-content>.game-topic-page{min-height:340px;padding:32px 18px 50px!important}#fabi .game-topic-header{margin-bottom:20px}#fabi .game-topic-body>.project .project-preview{aspect-ratio:16/10}}
#fabi .game-dialog-frame{scrollbar-color:#406276 #08131f;scrollbar-width:thin}
#fabi .game-dialog-frame::-webkit-scrollbar{width:8px}
#fabi .game-dialog-frame::-webkit-scrollbar-track{background:#08131f}
#fabi .game-dialog-frame::-webkit-scrollbar-thumb{border-radius:8px;background:#406276}

/* Walkable workshop corridors. The old hub remains as a navigation fallback. */
#fabi .game-world.has-corridor{min-height:650px;background:#08111a}
#fabi .game-world.has-corridor:before,#fabi .game-world.has-corridor:after{display:none}
#fabi .has-corridor>.game-backdrop,#fabi .has-corridor>.game-hud,#fabi .has-corridor>.game-fog,#fabi .has-corridor>.game-door-list,#fabi .has-corridor>.game-player,#fabi .has-corridor>.game-speech,#fabi .has-corridor>.game-floor-label{display:none!important}
#fabi .corridor-scene{position:absolute;z-index:10;inset:0;overflow:hidden;background:#0b1825;outline:none;touch-action:none;cursor:crosshair}
#fabi .corridor-scene:focus-visible{box-shadow:inset 0 0 0 2px #89edff}
#fabi .corridor-scene>canvas{display:block;width:100%;height:100%;image-rendering:auto}
#fabi .corridor-overlay{position:absolute;inset:0;pointer-events:none;color:#eaf6fc;font-family:ui-sans-serif,system-ui,sans-serif}
#fabi .corridor-top{position:absolute;top:16px;left:18px;display:grid;gap:4px;padding:10px 14px;border:1px solid rgba(123,218,235,.45);border-radius:10px;background:rgba(5,17,27,.82);box-shadow:0 12px 30px #0008;backdrop-filter:blur(12px)}
#fabi .corridor-title{color:#9cecff;font:800 12px/1.2 ui-monospace,monospace;letter-spacing:.21em}
#fabi .corridor-location{color:#b8ced9;font-size:11px}
#fabi .corridor-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:rgba(197,237,246,.68);font:300 24px/1 ui-monospace,monospace;text-shadow:0 0 10px #8ceeff}
#fabi .corridor-prompt{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);max-width:min(460px,65%);padding:9px 16px;border:1px solid rgba(114,215,232,.55);border-radius:10px;background:rgba(4,16,27,.88);color:#d9eef4;font:700 11px/1.4 ui-monospace,monospace;letter-spacing:.07em;text-align:center;box-shadow:0 9px 26px #0009}
#fabi .corridor-map{position:absolute;top:16px;right:18px;width:180px;height:180px;border-radius:9px;box-shadow:0 12px 35px #000a}
#fabi .corridor-avatar{position:absolute;left:50%;bottom:0;width:88px;height:126px;transform:translateX(-50%);filter:drop-shadow(0 14px 10px #000c)}
#fabi .corridor-avatar svg{width:100%;height:100%}
#fabi .corridor-directory{position:absolute;bottom:18px;left:18px;pointer-events:auto}
#fabi .corridor-directory-toggle{padding:10px 13px;border:1px solid rgba(138,211,229,.65);border-radius:8px;background:rgba(7,25,37,.92);color:#eaf6fc;font:700 11px ui-monospace,monospace;cursor:pointer;box-shadow:0 7px 25px #0008}
#fabi .corridor-directory-toggle:hover,#fabi .corridor-directory-toggle:focus-visible{border-color:#94efff;outline:2px solid #94efff;outline-offset:2px}
#fabi .corridor-directory-list{position:absolute;bottom:45px;left:0;display:grid;gap:5px;min-width:210px;max-height:260px;overflow:auto;padding:8px;border:1px solid rgba(137,211,228,.55);border-radius:10px;background:rgba(6,20,31,.97);box-shadow:0 16px 40px #000b}
#fabi .corridor-directory-list[hidden]{display:none}
#fabi .corridor-directory-list button{padding:8px 10px;border:1px solid rgba(128,180,202,.2);border-radius:6px;background:#10283a;color:#eaf6fc;font-size:11px;text-align:left;cursor:pointer}
#fabi .corridor-directory-list button:hover,#fabi .corridor-directory-list button:focus-visible{border-color:#91e9f8;background:#16435a}
#fabi .corridor-pad{position:absolute;right:18px;bottom:18px;display:grid;grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,36px);gap:4px;pointer-events:auto}
#fabi .corridor-pad button{border:1px solid rgba(139,212,228,.5);border-radius:8px;background:rgba(8,25,38,.85);color:#dcf7fc;font-size:19px;cursor:pointer;touch-action:none}
#fabi .corridor-pad button:active{background:#1c6780}
#fabi .corridor-pad button[data-move=turnLeft]{grid-area:2/1}
#fabi .corridor-pad button[data-move=forward]{grid-area:1/2}
#fabi .corridor-pad button[data-move=turnRight]{grid-area:2/3}
#fabi .corridor-pad button[data-move=backward]{grid-area:2/2}
@media(max-width:700px){#fabi .game-world.has-corridor{min-height:640px}#fabi .corridor-top{top:10px;left:10px;padding:8px 10px}#fabi .corridor-title{font-size:10px}#fabi .corridor-location{font-size:9px}#fabi .corridor-map{top:10px;right:10px;width:120px;height:120px}#fabi .corridor-avatar{width:64px;height:92px}#fabi .corridor-prompt{bottom:125px;max-width:85%;font-size:10px;white-space:normal}#fabi .corridor-directory{bottom:12px;left:10px}#fabi .corridor-pad{bottom:12px;right:10px;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px)}}
@media(prefers-reduced-motion:reduce){#fabi .corridor-avatar{transition:none}}
#fabi .corridor-workshop-photo{position:relative;width:100%;margin:0!important;overflow:hidden;border:1px solid rgba(134,196,215,.45);border-radius:22px;background:#09121c;box-shadow:0 18px 50px #0009}
#fabi .corridor-workshop-photo img{display:block;width:100%;height:auto;max-height:680px;object-fit:contain;object-position:center}
#fabi .corridor-workshop-photo:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(3,10,17,.62));pointer-events:none}
#fabi .corridor-workshop-photo figcaption{position:absolute;z-index:2;left:25px;bottom:20px;padding:8px 12px;border:1px solid rgba(122,218,236,.56);border-radius:8px;background:rgba(5,17,27,.8);color:#e3f4f8;font:700 11px ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:700px){#fabi .corridor-workshop-photo{border-radius:15px}#fabi .corridor-workshop-photo figcaption{left:10px;bottom:10px;max-width:calc(100% - 20px);font-size:8px;line-height:1.3}}

/* Full WebGL workshop; scoped to the existing personal site. */
#fabi .game-world.has-workshop3d{height:760px;min-height:760px;max-height:88svh;perspective:none;isolation:isolate;border:1px solid #344b59;background:#121f29;border-radius:18px;overflow:hidden;box-shadow:0 25px 80px #0008}
#fabi .workshop3d{position:absolute;inset:0;overflow:hidden;outline:none;touch-action:pan-y;color:#f3f0e9;font-family:system-ui,sans-serif;background:#17232d}
#fabi .workshop3d:focus-visible{outline:2px solid #a4e6e8;outline-offset:-3px}
#fabi .ws-view,#fabi .ws-view canvas{display:block;width:100%;height:100%;touch-action:none}
#fabi .ws-hud{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#05101b80,transparent 24%,transparent 78%,#07131b85)}
#fabi .ws-heading{position:absolute;top:25px;left:28px;display:grid;gap:5px;text-shadow:0 2px 10px #000}
#fabi .ws-kicker{color:#d0dfdf;font:600 9px ui-monospace,monospace;letter-spacing:.25em}
#fabi .ws-title{color:#fff4e7;font-weight:550;font-size:27px;letter-spacing:-.045em;line-height:1.2}
#fabi .ws-location{color:#d9e1e2;font-size:11px}
#fabi .ws-actions{position:absolute;right:23px;top:23px;display:flex;gap:8px;pointer-events:auto}
#fabi .ws-actions button,#fabi .ws-bottom button,#fabi .ws-touch button{min-height:39px;padding:9px 13px;border:1px solid #aecdd044;border-radius:7px;color:#e4f0f0;background:#0a1925d9;backdrop-filter:blur(14px);font:500 11px system-ui,sans-serif;cursor:pointer}
#fabi .ws-actions button:hover,#fabi .ws-bottom button:hover,#fabi .ws-topics button:hover{background:#183749;border-color:#9ddedf}
#fabi .ws-actions .ws-fullscreen{font-size:22px;padding:4px 11px}
#fabi .ws-reticle{position:absolute;left:50%;top:50%;width:4px;height:4px;transform:translate(-50%,-50%);border-radius:50%;background:#f5f2dcd9;box-shadow:0 0 5px #172738}
#fabi .ws-bottom{position:absolute;left:22px;right:22px;bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto}
#fabi .ws-prompt{max-width:62%;font:500 10px/1.5 ui-monospace,monospace;color:#e0e9e9;text-align:center;text-shadow:0 1px 8px #000;background:#071723c9;padding:9px 14px;border:1px solid #b0d8d42b;border-radius:6px}
#fabi .ws-navigation{position:relative}
#fabi .ws-directory{position:absolute;bottom:50px;left:0;display:grid;gap:5px;width:230px;max-height:320px;overflow:auto;border:1px solid #6c999d80;border-radius:9px;padding:9px;background:#101e29f5;box-shadow:0 15px 50px #0009;backdrop-filter:blur(16px)}
#fabi .ws-directory button{text-align:left;width:100%;font-size:12px;padding:11px}
#fabi .ws-room-panel{position:absolute;top:100px;right:23px;max-width:255px;padding:14px;border:1px solid #b9d7d53b;border-radius:9px;background:#0b1c29e8;backdrop-filter:blur(15px);pointer-events:auto;box-shadow:0 12px 40px #0006}
#fabi .ws-room-name{display:block;margin:0 0 11px;font:600 12px system-ui;color:#eae2d7}
#fabi .ws-topics{display:grid;gap:5px}
#fabi .ws-topics button{padding:10px 11px;background:#1a3040;border:1px solid #a9d3d72b;border-radius:5px;color:#e3ecee;font-size:11px;text-align:left;cursor:pointer}
#fabi .ws-touch{position:absolute;bottom:85px;left:22px;display:grid;grid-template-columns:repeat(3,37px);gap:4px;pointer-events:auto;opacity:.75}
#fabi .ws-touch button{font-size:17px;padding:6px;touch-action:none}
#fabi .ws-touch button:active{background:#2c7180}
#fabi .ws-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:radial-gradient(ellipse at 50% 20%,#263e50,#0c1723 70%);pointer-events:auto}
#fabi .ws-load-mark{font:600 48px system-ui;letter-spacing:-.1em;color:#f5e7d4;border-bottom:2px solid #87d3da;padding:18px 22px}
#fabi .ws-loading strong{font-size:17px;font-weight:500;color:#e6eeef}
#fabi .ws-load-sub{font:500 10px ui-monospace,monospace;letter-spacing:.15em;color:#a7c3d0}
#fabi .ws-hud [hidden]{display:none!important}
#fabi .workshop3d:fullscreen,#fabi .workshop3d.ws-expanded{position:fixed;inset:0;width:100vw;height:100dvh;max-height:none;z-index:99999}
#fabi .ws-fallback{padding:14px 20px;background:#142b3d;color:#e5eef4;font-size:14px}
@media(max-width:760px){#fabi .game-world.has-workshop3d{height:650px;min-height:600px;max-height:none}#fabi .ws-heading{top:16px;left:16px}#fabi .ws-title{font-size:22px}#fabi .ws-kicker{font-size:8px}#fabi .ws-actions{top:16px;right:14px}#fabi .ws-quality{max-width:93px;font-size:9px!important}#fabi .ws-bottom{left:13px;right:13px;bottom:13px}#fabi .ws-prompt{position:absolute;left:0;right:0;bottom:58px;max-width:none;font-size:9px}#fabi .ws-touch{left:14px;bottom:123px;grid-template-columns:repeat(3,40px)}#fabi .ws-touch button{min-height:40px}#fabi .ws-room-panel{right:14px;top:100px;max-width:175px;padding:10px}#fabi .ws-topics button{font-size:10px;padding:9px}#fabi .ws-room-name{font-size:11px}}

/* Hero repair: heading, full image, then introduction. */
#fabi .game-intro{gap:24px;padding:12px 0 6px}
#fabi .game-copy,#fabi .game-blurb{width:100%;min-width:0}
#fabi .game-intro .hero-overlay h1{font-size:clamp(24px,3.1vw,40px)!important;max-width:100%!important;line-height:1.16!important;margin-bottom:0!important}
#fabi .game-intro .hero-details{margin:0 auto!important}
#fabi .game-intro .hero-details .buttons{justify-content:center!important;width:100%}
#fabi .corridor-workshop-photo img{width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:1672/941;object-fit:contain!important;filter:none!important}
#fabi .corridor-workshop-photo:after{display:none}
#fabi .game-topic-header h2,#fabi .game-subdoor strong{overflow-wrap:anywhere}
@media(max-width:700px){#fabi .game-intro{gap:18px}#fabi .game-intro .hero-overlay h1{font-size:clamp(18px,4.3vw,30px)!important;line-height:1.2!important}#fabi .game-intro .hero-overlay .eyebrow{font-size:8px!important;letter-spacing:.08em!important}#fabi .game-blurb{padding:0 8px;box-sizing:border-box}}
