:root{font-family:Noto Sans KR,Malgun Gothic,ui-sans-serif,system-ui,sans-serif;color:#f5f1ff;background:#130d1d;font-synthesis:none}*{box-sizing:border-box}html{background:#130d1d;scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--page);color:var(--ink);transition:background .18s ease,color .18s ease}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}::selection{background:var(--accent);color:#130d1d}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--page)}::-webkit-scrollbar-thumb{border:3px solid var(--page);border-radius:12px;background:var(--surface-3)}.app-shell{min-height:100vh;background:radial-gradient(circle at 73% 0%,var(--accent-soft),transparent 29rem),var(--page)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:26px;height:76px;padding:0 max(24px,calc((100vw - 1420px)/2));border-bottom:1px solid var(--line-subtle);background:color-mix(in srgb,var(--page) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{padding:0;border:0;background:none;color:var(--ink);font-size:26px;font-weight:900;letter-spacing:-.07em}.brand span{color:var(--accent)}.main-nav{display:flex;gap:7px}.main-nav button{padding:9px 10px;border:0;border-radius:7px;background:none;color:var(--muted);font-size:14px;font-weight:700}.main-nav button:hover,.main-nav button.active{background:var(--accent-soft);color:var(--ink)}.theme-picker{display:flex;gap:3px;margin-left:auto;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.theme-picker button{display:flex;align-items:center;gap:6px;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:var(--subtle);font-size:12px;font-weight:800}.theme-picker button.active{background:var(--surface-3);color:var(--accent-2);box-shadow:0 5px 15px #03020948}.deploy-shortcut,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:8px;background:var(--accent);color:#160d22;font-weight:900}.deploy-shortcut{padding:10px 13px;font-size:13px}.primary-button{min-height:47px;padding:0 17px;font-size:14px}.primary-button:hover,.deploy-shortcut:hover{filter:brightness(1.08);transform:translateY(-1px)}.section-mark{display:inline-flex;align-items:center;gap:7px;color:var(--accent-2);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.88fr);gap:55px;max-width:1320px;min-height:590px;margin:0 auto;padding:105px 42px 66px;overflow:hidden}.hero-copy{position:relative;z-index:1;align-self:center;max-width:650px}.hero-copy h1,.shelf-toolbar h1,.deploy-page h1,.game-information h1{margin:15px 0 22px;font-size:62px;line-height:1.03;letter-spacing:-.04em}.hero-copy p{max-width:48ch;margin:0;color:var(--muted);font-size:18px;line-height:1.75}.hero-actions{display:flex;gap:10px;margin-top:32px}.quiet-button{min-height:47px;padding:0 17px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-weight:800}.quiet-button:hover{border-color:var(--accent);background:var(--surface-2)}.signal-stage{position:relative;align-self:center;min-height:440px;overflow:hidden;border-radius:18px;background:radial-gradient(circle at 50% 50%,#a56cff1d,transparent 31%),linear-gradient(145deg,var(--stage),var(--surface));box-shadow:18px 25px 60px #00000040}.signal-stage:before{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 35%,#d4b5ff10 50%,transparent 65%);content:"";animation:scan 6s ease-in-out infinite}.signal-ring{position:absolute;left:50%;top:50%;border:1px solid #caa5ff7a;border-radius:50%;transform:translate(-50%,-50%)}.ring-a{width:155px;height:155px;box-shadow:0 0 35px #a56cff30}.ring-b{width:260px;height:260px;border-color:#a56cff4a}.ring-c{width:385px;height:385px;border-color:#a56cff25}.signal-core{position:absolute;left:calc(50% - 19px);top:calc(50% - 19px);width:38px;height:38px;background:var(--accent);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 0 18px #bd8aff)}.signal-shape{position:absolute;width:23px;height:23px;border:2px solid var(--accent-2);transform:rotate(45deg)}.square-a{left:21%;top:29%;animation:float 4.7s ease-in-out infinite}.square-b{right:17%;bottom:28%;width:34px;height:34px;animation:float 5.5s ease-in-out -2s infinite}.diamond-a{right:26%;top:19%;width:16px;height:16px;animation:float 5s ease-in-out -1s infinite}.signal-beam{position:absolute;left:50%;top:50%;width:210px;height:2px;background:linear-gradient(90deg,transparent,var(--accent-2),transparent);transform-origin:left center;box-shadow:0 0 13px var(--accent)}.beam-a{transform:rotate(28deg)}.beam-b{transform:rotate(155deg)}@keyframes float{50%{translate:0 -14px;filter:drop-shadow(0 0 13px var(--accent))}}@keyframes scan{50%{transform:translate(12%)}}.home-shelf{max-width:1320px;margin:0 auto;padding:30px 42px 90px}.shelf-heading,.shelf-toolbar,.shelf-controls,.tile-meta,.tile-footer,.detail-tags,.detail-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}.shelf-heading h2{margin:11px 0 0;font-size:30px;letter-spacing:-.035em}.text-link{display:inline-flex;align-items:center;gap:7px;padding:6px 0;border:0;background:none;color:var(--muted);font-weight:800}.text-link:hover{color:var(--accent-2)}.home-games{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:28px}.game-tile{overflow:hidden;border-radius:13px;background:var(--surface);box-shadow:0 18px 32px #03020922;transition:transform .18s ease,box-shadow .18s ease}.game-tile:hover{transform:translateY(-4px);box-shadow:0 24px 40px #0201064d}.tile-art{position:relative;display:grid;place-items:center;height:145px;overflow:hidden;background:#31195a;color:#e7d7ff}.tile-1 .tile-art{background:#522375}.tile-2 .tile-art{background:#291a4d}.tile-art:after{position:absolute;width:180px;height:180px;border:1px solid #d4b5ff3d;border-radius:50%;content:""}.tile-art span{position:absolute;left:16px;top:13px;color:#ddc6ff;font-size:11px;font-weight:900}.tile-art b{position:relative;z-index:1;font-size:61px;letter-spacing:-.07em}.favorite{display:grid;place-items:center;border:1px solid #ffffff45;border-radius:50%;background:#140c2266;color:var(--ink)}.favorite:hover{border-color:var(--accent-2);color:var(--accent-2)}.tile-art .favorite{position:absolute;right:13px;top:12px;width:31px;height:31px}.favorite.saved{border-color:var(--accent);background:var(--accent);color:#180d28}.tile-copy{padding:16px}.tile-meta{align-items:flex-start}.tile-meta>span,.detail-tags>span{color:var(--accent-2);font-size:11px;font-weight:800}.platform-badges{display:flex;flex-wrap:wrap;gap:5px}.platform-badges span{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:10px;font-weight:800}.tile-copy h3{margin:11px 0 7px;font-size:20px;letter-spacing:-.03em}.tile-copy p{min-height:40px;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.tile-footer{margin-top:17px;padding-top:12px;border-top:1px solid var(--line-subtle);color:var(--subtle);font-size:11px;font-variant-numeric:tabular-nums}.tile-footer button{display:grid;place-items:center;padding:0;border:0;background:none;color:var(--accent-2)}.shelf-layout{display:grid;grid-template-columns:220px minmax(0,1fr) 215px;gap:25px;max-width:1420px;margin:0 auto;padding:40px 28px 90px}.browse-rail{position:sticky;top:100px;align-self:start;padding-right:20px;border-right:1px solid var(--line-subtle)}.browse-rail section+section{margin-top:25px;padding-top:23px;border-top:1px solid var(--line-subtle)}.browse-rail h2{margin:0 0 10px;color:var(--subtle);font-size:11px;letter-spacing:.07em;text-transform:uppercase}.browse-rail button{display:flex;align-items:center;gap:7px;width:100%;padding:8px 9px;border:0;border-radius:6px;background:none;color:var(--muted);font-size:13px;text-align:left}.browse-rail button:hover,.browse-rail button.selected{background:var(--accent-soft);color:var(--ink)}.browse-rail small{margin-left:auto;color:var(--subtle);font-size:10px;font-variant-numeric:tabular-nums}.shelf-main{min-width:0}.shelf-toolbar{align-items:flex-end}.shelf-toolbar h1{margin-bottom:0;font-size:42px}.search-field{display:flex;align-items:center;gap:8px;width:min(310px,42%);padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--subtle)}.search-field:focus-within{border-color:var(--accent)}.search-field input{width:100%;height:42px;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}.search-field input::placeholder{color:var(--subtle)}.shelf-controls{margin:26px 0 18px;padding:12px 0;border-top:1px solid var(--line-subtle);border-bottom:1px solid var(--line-subtle)}.period-tabs{display:flex;gap:2px}.period-tabs button{padding:7px 9px;border:0;border-radius:5px;background:none;color:var(--subtle);font-size:12px;font-weight:800}.period-tabs button.active{background:var(--accent-soft);color:var(--accent-2)}.sort-select{display:flex;align-items:center;gap:7px;color:var(--subtle);font-size:12px}.sort-select select{border:0;background:var(--surface);color:var(--ink);font-size:12px;outline:0}.game-shelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.game-shelf .tile-art{height:112px}.ranking-rail{align-self:start;padding:17px 0 0;border-top:1px solid var(--line)}.ranking-rail h2{display:flex;align-items:center;gap:7px;margin:0 0 12px;font-size:14px}.ranking-rail h2 svg{color:var(--accent)}.ranking-rail button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;width:100%;padding:11px 0;border:0;border-bottom:1px solid var(--line-subtle);background:none;color:var(--ink);text-align:left}.ranking-rail button:hover span{color:var(--accent-2)}.ranking-rail b{color:var(--accent-2);font-size:12px}.ranking-rail span{overflow:hidden;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.ranking-rail small{display:block;margin-top:3px;color:var(--subtle);font-size:10px;font-weight:600}.ranking-rail em{align-self:center;color:var(--subtle);font-size:10px;font-style:normal;font-variant-numeric:tabular-nums}.empty-shelf{padding:76px 24px;text-align:center;border:1px dashed var(--line);border-radius:13px;color:var(--muted)}.empty-shelf svg{color:var(--accent)}.empty-shelf h2{margin:13px 0 7px;font-size:20px}.empty-shelf p{margin:0;font-size:13px}.detail-page{max-width:1280px;margin:0 auto;padding:35px 30px 80px}.back-link{display:inline-flex;padding:0;border:0;background:none;color:var(--muted);font-size:13px;font-weight:800}.back-link:hover{color:var(--accent-2)}.detail-frame{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);gap:30px;margin-top:22px;padding:24px;border-radius:17px;background:var(--surface);box-shadow:0 24px 42px #03020924}.detail-stage{position:relative;display:grid;min-height:505px;overflow:hidden;border-radius:12px;background:var(--stage)}.detail-stage .signal-stage{min-height:100%;border-radius:0;box-shadow:none}.signal-stage.compact .ring-c{width:330px;height:330px}.live-chip{position:absolute;left:15px;top:15px;padding:7px 9px;border-radius:6px;background:#100b1ccc;color:var(--accent-2);font-size:11px;font-weight:800;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.player-wrap{position:relative;width:100%;height:100%}.player-wrap iframe{display:block;width:100%;height:505px;border:0;background:#050509}.close-player{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:34px;height:34px;border:1px solid #ffffff45;border-radius:50%;background:#08060dbd;color:#fff}.game-information{align-self:center}.game-information h1{margin:14px 0;font-size:46px}.game-information>p{margin:0;color:var(--muted);font-size:15px;line-height:1.75}.detail-tags{justify-content:flex-start;margin:22px 0}.detail-actions{justify-content:flex-start}.favorite.large{width:47px;height:47px;border-radius:8px}.game-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:31px 0 0;border-top:1px solid var(--line-subtle);border-left:1px solid var(--line-subtle)}.game-facts div{padding:14px;border-right:1px solid var(--line-subtle);border-bottom:1px solid var(--line-subtle)}.game-facts dt{color:var(--subtle);font-size:11px}.game-facts dd{margin:5px 0 0;font-size:16px;font-weight:850;font-variant-numeric:tabular-nums}.detail-notes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}.detail-notes article{padding:20px;border-radius:11px;background:var(--surface)}.detail-notes h2{margin:0;font-size:15px}.detail-notes p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.deploy-page{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:80px;max-width:1050px;margin:0 auto;padding:115px 30px}.deploy-page h1{font-size:55px}.deploy-page p{max-width:52ch;color:var(--muted);line-height:1.75}.deploy-page code{padding:2px 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent-2)}.deploy-form{align-self:center;display:grid;gap:17px;padding:27px;border-radius:14px;background:var(--surface)}.deploy-form label{display:grid;gap:9px;color:var(--muted);font-size:13px;font-weight:800}.deploy-form input{padding:12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);background:var(--surface-2)}.deploy-form output{min-height:20px;color:var(--accent-2);font-size:12px}@media (max-width:1080px){.topbar{padding:0 20px;gap:14px}.main-nav{display:none}.home-hero{grid-template-columns:1fr minmax(340px,.8fr);gap:25px;padding:80px 28px 50px}.home-hero h1{font-size:51px}.shelf-layout{grid-template-columns:200px minmax(0,1fr);padding:30px 20px 70px}.ranking-rail{display:none}.detail-frame{grid-template-columns:1fr}.detail-stage{min-height:400px}.deploy-page{gap:35px}}@media (max-width:760px){.topbar{height:auto;min-height:65px;flex-wrap:wrap;padding:11px 16px}.theme-picker{order:3;width:100%;margin-left:0}.theme-picker button{flex:1;justify-content:center}.deploy-shortcut{margin-left:auto}.home-hero{grid-template-columns:1fr;padding:65px 22px 35px}.hero-copy h1,.shelf-toolbar h1,.deploy-page h1{font-size:39px}.signal-stage{min-height:315px}.home-shelf{padding:25px 20px 65px}.home-games{grid-template-columns:1fr}.shelf-layout{grid-template-columns:1fr;padding:20px 16px 60px}.browse-rail{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:auto;padding:0;border:0}.browse-rail section+section{margin:0;padding:0;border:0}.browse-rail h2{margin-bottom:5px}.browse-rail button{white-space:nowrap}.shelf-toolbar{align-items:stretch;flex-direction:column}.search-field{width:100%}.game-shelf{grid-template-columns:1fr}.detail-page{padding:24px 16px 60px}.detail-frame{padding:12px}.detail-stage,.player-wrap iframe{min-height:360px;height:360px}.game-information{padding:10px}.game-information h1{font-size:36px}.detail-notes{grid-template-columns:1fr}.deploy-page{grid-template-columns:1fr;padding:70px 20px}.shelf-heading{align-items:flex-end}.shelf-heading h2{font-size:24px}}@media (max-width:430px){.brand{font-size:23px}.deploy-shortcut{padding:9px}.deploy-shortcut{font-size:0}.deploy-shortcut svg{width:18px;height:18px}.hero-actions{flex-direction:column;align-items:stretch}.shelf-controls{align-items:flex-start;flex-direction:column}.period-tabs{width:100%;justify-content:space-between}.period-tabs button{padding:8px 5px}.tile-meta{align-items:flex-start;flex-direction:column}.detail-stage,.player-wrap iframe{min-height:280px;height:280px}}:root,html[data-theme=midnight]{font-family:Noto Sans KR,Malgun Gothic,ui-sans-serif,system-ui,sans-serif;--page: #08090d;--surface: #111218;--surface-2: #171820;--surface-3: #22212b;--line: #35333f;--line-subtle: #25242d;--ink: #f5f3fa;--muted: #bbb7c6;--subtle: #85818f;--accent: #a970ff;--accent-2: #d7bdff;--accent-soft: #a970ff1d;--stage: #10111a;--accent-ink: #170d26}html[data-theme=white]{--page: #f7f6fa;--surface: #ffffff;--surface-2: #f1eff6;--surface-3: #e8e3f0;--line: #dbd7e2;--line-subtle: #ebe8ef;--ink: #1d1924;--muted: #686270;--subtle: #65606b;--accent: #7d4bd1;--accent-2: #6330b5;--accent-soft: #7d4bd11a;--stage: #f0ebf8;--accent-ink: #ffffff}.primary-button,.deploy-shortcut,.favorite.saved{color:var(--accent-ink)}.signal-stage.runway{background:radial-gradient(circle at 53% 69%,#b17cff3f,transparent 10rem),linear-gradient(145deg,var(--stage),var(--surface))}.signal-runway{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:space-around;padding:0 12%;opacity:.8;perspective:360px}.signal-runway i{width:1px;height:118%;background:linear-gradient(180deg,transparent,var(--accent-2) 32%,transparent 86%);transform:rotateX(54deg) translateY(-16%);transform-origin:top}.signal-stage.runway .signal-ring{left:56%;top:70%}.signal-stage.runway .signal-core{left:calc(56% - 19px);top:calc(70% - 19px)}.signal-stage.runway .signal-shape{animation-duration:6s}.game-tile{position:relative}.tile-open-surface{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;border-radius:inherit;background:transparent}.tile-open-surface:focus-visible{outline:2px solid var(--accent-2);outline-offset:-4px}.tile-art .favorite,.tile-footer .tile-play-button{position:relative;z-index:2}.tile-art .favorite{position:absolute}.tile-footer .tile-play-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:104px;min-height:36px;margin:-9px -5px -9px auto;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--accent-2);font-size:11px;font-weight:850}.tile-footer .tile-play-button:hover{border-color:var(--accent);background:var(--accent-soft)}.home-games.loading-games,.shelf-loading{display:grid;gap:14px}.home-games.loading-games{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:28px}.shelf-loading{grid-template-columns:repeat(2,minmax(0,1fr))}.loading-games i,.shelf-loading i{display:block;min-height:230px;border-radius:13px;background:linear-gradient(100deg,var(--surface),var(--surface-2),var(--surface));background-size:220% 100%;animation:skeleton 1.3s linear infinite}@keyframes skeleton{to{background-position:-220% 0}}.retry-panel{padding:42px 24px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.retry-panel h2{margin:0;font-size:19px}.retry-panel p{margin:9px 0 18px;color:var(--muted);font-size:13px}.shelf-collection{position:relative;padding-bottom:14px}.shelf-rail-line{display:block;height:5px;margin-top:14px;border-radius:4px;background:var(--surface-3)}.stack-meta{display:block;margin:-4px 0 18px;color:var(--accent-2);font-size:11px;font-weight:850;letter-spacing:.07em}.play-feedback{min-height:18px;margin:10px 0 -8px!important;color:var(--muted)!important;font-size:12px!important}.primary-button:disabled{cursor:wait;opacity:.72;transform:none}.player-settings-link{display:inline-flex;align-items:center;gap:6px;padding:9px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:12px;font-weight:800}.player-settings-link:hover,.player-settings-link.active{background:var(--accent-soft);color:var(--ink)}.settings-page{display:grid;grid-template-columns:minmax(0,.85fr) minmax(440px,1fr);gap:70px;max-width:1060px;margin:0 auto;padding:105px 30px}.settings-page h1{margin:0;font-size:48px;letter-spacing:-.04em}.settings-page>div>p{max-width:42ch;margin:18px 0 0;color:var(--muted);line-height:1.7}.player-preference-controls{display:grid;gap:20px;padding:25px;border-radius:14px;background:var(--surface)}.player-preference-controls fieldset{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;border:0}.player-preference-controls legend{width:100%;margin-bottom:9px;color:var(--subtle);font-size:11px;font-weight:850}.player-preference-controls fieldset button{min-height:86px;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);text-align:left}.player-preference-controls fieldset button:hover,.player-preference-controls fieldset button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.player-preference-controls fieldset b,.player-preference-controls fieldset span{display:block}.player-preference-controls fieldset b{margin-bottom:5px;font-size:13px}.player-preference-controls fieldset span{color:var(--subtle);font-size:11px;line-height:1.45}.preferred-resolution{margin:0;color:var(--muted);font-size:12px}.preferred-resolution b{color:var(--accent-2);font-variant-numeric:tabular-nums}.game-player{display:grid;grid-template-rows:58px minmax(0,1fr);overflow:hidden;background:#050509}.game-player.immersive{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;min-height:100svh}.game-player.viewer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:inherit}.game-player-toolbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:0 16px;border-bottom:1px solid #ffffff1d;background:#0c0c12;color:#f8f6ff}.game-player-toolbar>div:first-child{display:grid;min-width:0;gap:3px}.game-player-toolbar strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.game-player-toolbar span{color:#b7abc9;font-size:10px}.game-player-actions{display:flex;align-items:center;gap:5px}.game-player-actions button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #ffffff26;border-radius:7px;background:#171720;color:#f8f6ff}.game-player-actions button:hover{border-color:#b77cff;color:#d7bdff}.language-picker{position:relative;z-index:12}.language-trigger{display:inline-flex;align-items:center;min-width:76px;min-height:38px;gap:7px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.06em;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.language-trigger:hover,.language-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.language-trigger:active{transform:translateY(1px)}.language-trigger i{width:6px;height:6px;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease}.language-trigger[aria-expanded=true] i{transform:rotate(225deg) translate(-2px,-1px)}.language-menu{position:absolute;top:calc(100% + 8px);right:0;display:grid;min-width:154px;gap:3px;padding:5px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 16px 34px #03020942;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform-origin:top right;animation:language-menu-in .16s ease-out both}.language-menu button{display:grid;grid-template-columns:28px 1fr 12px;align-items:center;min-height:36px;gap:7px;padding:0 8px;border:0;background:transparent;border-radius:6px;color:var(--muted);font-size:12px;font-weight:800;text-align:left}.language-menu button b{color:var(--subtle);font-size:10px;letter-spacing:.07em}.language-menu button:hover,.language-menu button.active{background:var(--accent-soft);color:var(--ink)}.language-menu button.active b{color:var(--accent-2)}.language-menu button i{width:7px;height:4px;border-left:1.5px solid var(--accent-2);border-bottom:1.5px solid var(--accent-2);transform:rotate(-45deg) translateY(-2px)}@keyframes language-menu-in{0%{opacity:0;transform:translateY(-5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.sort-select{position:relative;min-height:36px;padding:0 9px 0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);transition:border-color .16s ease,background .16s ease}.sort-select:focus-within{border-color:var(--accent);background:var(--accent-soft)}.sort-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:78px;padding:0 16px 0 0;border:0;background:transparent;color:var(--ink);cursor:pointer;font-weight:800}.sort-select:after{position:absolute;right:11px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--subtle);border-bottom:1.5px solid var(--subtle);content:"";pointer-events:none;transform:translateY(-65%) rotate(45deg)}.game-settings-popover{position:absolute;z-index:4;top:50px;right:54px;width:min(410px,calc(100vw - 28px));border:1px solid #ffffff26;border-radius:12px;background:#111119;box-shadow:0 20px 45px #00000078}.game-settings-popover .player-preference-controls{padding:16px;border-radius:inherit;background:transparent}.game-settings-popover .player-preference-controls.compact{gap:13px}.game-settings-popover .player-preference-controls fieldset button{min-height:70px;background:#191922}.game-settings-popover .player-preference-controls fieldset button.selected{background:#a970ff21}.game-canvas{display:grid;min-height:0;place-items:center;background:#000}.game-frame{overflow:hidden;aspect-ratio:var(--game-aspect-ratio);background:#000}.game-canvas.letterbox .game-frame{width:auto;height:100%;max-width:100%}.game-canvas.cover .game-frame{width:100%;height:100%}.game-frame iframe{display:block;width:100%;height:100%;border:0;background:#000}.detail-stage:has(.game-player){overflow:visible}@media (max-width: 900px){.settings-page{grid-template-columns:1fr;gap:35px;padding:70px 20px}}@media (max-width: 760px){.home-games.loading-games,.shelf-loading{grid-template-columns:1fr}.player-settings-link span{display:none}.language-trigger{min-width:70px;padding:0 8px}.settings-page h1{font-size:38px}.player-preference-controls fieldset{grid-template-columns:1fr}.game-player-toolbar{padding:0 10px}.game-player-actions{gap:3px}.game-settings-popover{right:8px;top:52px}}.login-link{min-height:36px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:850}.login-link:hover,.login-link.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.login-page{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);gap:clamp(34px,7vw,100px);max-width:1080px;min-height:calc(100vh - 76px);margin:0 auto;padding:clamp(58px,10vh,120px) 30px 90px}.login-intro{align-self:center}.login-intro h1{margin:0;font-size:clamp(42px,5.2vw,62px);line-height:1.03;letter-spacing:-.04em}.login-intro>p{max-width:34ch;margin:19px 0 0;color:var(--muted);font-size:16px;line-height:1.75}.login-intro .signal-stage{min-height:270px;margin-top:34px;border-radius:14px}.login-intro .signal-stage .ring-c{width:270px;height:270px}.login-card{align-self:center;padding:28px;border-radius:14px;background:var(--surface);box-shadow:0 24px 42px #03020924}.login-card h2{margin:0;font-size:22px;letter-spacing:-.03em}.login-card>p{margin:10px 0 22px;color:var(--muted);font-size:13px;line-height:1.65}.social-login-list{display:grid;gap:9px}.social-login-button{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:54px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);font-size:14px;font-weight:850;text-align:left;transition:transform .18s ease,border-color .18s ease,background .18s ease}.social-login-button:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.social-login-button>svg{color:var(--subtle)}.social-login-button.google{border-color:#747775;background:#fff;color:#1f1f1f}.social-login-button.google:hover{border-color:#747775;background:#fff}.social-login-button:disabled{cursor:not-allowed;opacity:.56}.social-login-button:disabled:hover{border-color:var(--line);background:var(--surface-2);transform:none}.provider-icon{width:25px;height:25px;margin:3px}.github-icon{color:var(--ink)}.login-card output{display:block;min-height:20px;margin-top:13px;color:var(--accent-2);font-size:12px}.account-card{display:grid;gap:10px}.account-card strong{overflow-wrap:anywhere;font-size:20px;letter-spacing:-.025em}.account-role{width:fit-content;padding:5px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent-2);font-size:11px;font-weight:850;text-transform:uppercase}.login-card-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:5px}.login-card-actions .quiet-button{min-height:47px}.login-page .admin-review{grid-column:1 / -1;max-width:none;margin:0}@media (max-width: 760px){.login-link{margin-left:auto}.login-page{grid-template-columns:1fr;gap:26px;min-height:auto;padding:56px 20px 70px}.login-intro .signal-stage{min-height:220px;margin-top:27px}.login-card{padding:22px}}.admin-review{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;max-width:1236px;margin:16px auto;padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.admin-review h2,.admin-review p,.admin-review output{grid-column:1 / -1;margin:0}.admin-review h2{font-size:16px}.admin-review p,.admin-review output{color:var(--muted);font-size:12px}.admin-review article{display:flex;grid-column:1 / -1;align-items:center;flex-wrap:wrap;gap:8px;padding-top:8px;border-top:1px solid var(--line-subtle)}.admin-review article span{margin-right:auto;color:var(--muted);font-size:12px}.admin-review button{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink);font-size:12px}.admin-members,.admin-submissions{display:grid;grid-column:1 / -1;gap:8px}.admin-members h3,.admin-submissions h3{margin:6px 0 0;font-size:13px}.admin-submissions>p{margin:0;color:var(--muted);font-size:12px}.admin-members select{margin-left:auto;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink);font-size:12px}.profile-link{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:176px;min-height:36px;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--ink);font-size:12px;font-weight:850}.profile-link:hover,.profile-link.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.profile-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-avatar{flex:none;color:var(--accent-2)}.access-gate{display:grid;justify-items:start;gap:16px;max-width:620px;min-height:calc(100vh - 76px);margin:0 auto;align-content:center;padding:70px 30px}.access-gate-kicker{color:var(--accent-2);font-size:11px;font-weight:900;letter-spacing:.13em}.access-gate h1{margin:0;font-size:clamp(38px,5vw,58px);letter-spacing:-.045em;line-height:1.05}.access-gate p{max-width:46ch;margin:0;color:var(--muted);font-size:15px;line-height:1.75}.profile-page{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(340px,1fr);gap:clamp(30px,7vw,90px);max-width:980px;margin:0 auto;padding:clamp(58px,10vh,110px) 30px 90px}.profile-intro{align-self:start}.profile-intro h1{margin:8px 0 0;font-size:clamp(42px,5.2vw,62px);letter-spacing:-.045em}.profile-intro p{margin:16px 0 0;color:var(--muted);line-height:1.7}.profile-card{display:grid;gap:16px;padding:28px;border-radius:14px;background:var(--surface);box-shadow:0 24px 42px #03020924}.profile-card>div{display:grid;gap:8px}.profile-card strong{overflow-wrap:anywhere;font-size:16px;letter-spacing:-.02em}.profile-card label{display:grid;gap:8px;color:var(--muted);font-size:12px;font-weight:800}.profile-card input{width:100%;min-height:45px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font:inherit}.profile-card input:focus{outline:2px solid var(--accent);outline-offset:2px}.profile-card>p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.profile-actions{display:flex;flex-wrap:wrap;gap:9px}.profile-actions .quiet-button{min-height:47px}.profile-card output{min-height:18px;color:var(--accent-2);font-size:12px}.profile-page .admin-review{grid-column:1 / -1;max-width:none;margin:0}.profile-back-link{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:0;border:0;background:transparent;color:var(--accent-2);font-weight:850}.profile-back-link:hover{color:var(--ink)}@media (max-width: 760px){.profile-link{max-width:106px;margin-left:auto}.access-gate{min-height:calc(100vh - 66px);padding:56px 20px}.profile-page{grid-template-columns:1fr;gap:30px;padding:56px 20px 70px}.profile-card{padding:22px}}@font-face{font-family:Ludipple Sans;src:url(/fonts/LudippleSansKR.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{font-family:Ludipple Sans,Noto Sans KR,Yu Gothic,Meiryo,Malgun Gothic,ui-sans-serif,system-ui,sans-serif}html,body,button,input,select,textarea{font-family:Ludipple Sans,Noto Sans KR,Yu Gothic,Meiryo,Malgun Gothic,ui-sans-serif,system-ui,sans-serif}:root:lang(ja){font-family:Yu Gothic,YuGothic,Meiryo,Ludipple Sans,sans-serif}:root:lang(ja) body,:root:lang(ja) button,:root:lang(ja) input,:root:lang(ja) select,:root:lang(ja) textarea{font-family:Yu Gothic,YuGothic,Meiryo,Ludipple Sans,sans-serif}
