.fm-intro{position:fixed;inset:0;z-index:10000;background:#0c0c0c;overflow:hidden;color:#e4d1b7;font-family:'SUIT Variable','Noto Sans KR',system-ui,sans-serif;isolation:isolate;outline:none}
.fm-intro *{box-sizing:border-box}
.fm-scene{position:absolute;inset:0;opacity:0;overflow:hidden;perspective:var(--fm-perspective,1200px);perspective-origin:50% 50%}
.fm-world{position:absolute;left:50%;top:50%;width:max(100vw,177.777778svh);height:max(100svh,56.25vw);transform-style:preserve-3d;transform:translate(-50%,-50%)}
.fm-room,.fm-frame,.fm-light{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.fm-room,.fm-room-shade{clip-path:inset(5.555556% 11.041667% 4.166667% 13.489583%);transform:translateZ(calc(var(--fm-perspective) * -.15)) scale(1.15)}
.fm-room{filter:brightness(.83)}
.fm-room-shade{position:absolute;inset:0;background:linear-gradient(90deg,#000b,#0005 60%,#0008);opacity:.62;pointer-events:none}
.fm-frame{transform:translateZ(0)}
.fm-door{position:absolute;left:14.010417%;top:5.555556%;width:74.947917%;height:90.277778%;transform-origin:0% 50%;transform:rotateY(0deg);transform-style:preserve-3d;backface-visibility:hidden}
.fm-door svg{width:100%;height:100%;display:block}
.fm-door::after{content:'';position:absolute;left:100%;top:0;width:5px;height:100%;background:linear-gradient(90deg,#594332,#1a1410);transform:rotateY(90deg);transform-origin:0% 50%;backface-visibility:hidden}
.fm-lever{transform-box:fill-box;transform-origin:71.4286% -50%}
.fm-jamb-light{position:absolute;left:88.958334%;top:5.555556%;width:1px;height:90.277778%;background:#f0d7ad;box-shadow:0 0 18px 3px #e1b98555;opacity:0;pointer-events:none}
.fm-door-shade{position:absolute;inset:0;background:linear-gradient(90deg,transparent,#0008);opacity:0;pointer-events:none}
.fm-light{transform:translateZ(8px);pointer-events:none}
.fm-gate{position:absolute;inset:0;display:grid;place-items:center;background:#0c0c0c}
.fm-button{appearance:none;border:0;box-shadow:inset 0 0 0 1px #cbb69d;border-radius:8px;background:#11100f;color:#e4d1b7;font:400 16px/24px 'SUIT Variable','Noto Sans KR',system-ui,sans-serif;min-height:64px;padding:16px 48px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.fm-enter{min-width:276px}
.fm-button:hover{background:#211d18;color:#fff2e0;box-shadow:inset 0 0 0 1px #e4d1b7,0 0 24px #cbb69d10}
.fm-button:active{background:#30291f}
.fm-button:focus-visible{outline:solid 2px #e4d1b7;outline-offset:8px}
.fm-button:disabled{cursor:default;opacity:.64}
.fm-error{position:absolute;bottom:24px;left:24px;right:24px;text-align:center;font-size:16px;line-height:24px}
.fm-running .fm-world,.fm-running .fm-door{will-change:transform}
@media(max-width:640px){.fm-button{padding:16px 24px}.fm-enter{min-width:260px}.fm-world{width:100vw;height:100svh}.fm-room{object-fit:cover}}
@media(prefers-reduced-motion:reduce){.fm-button{transition:none}}
