@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&display=swap";:root{--bg:#fff;--fg:#111827;--primary:#3b82f6;--primary-strong:#2563eb;--secondary:#10b981;--secondary-strong:#059669;--accent:#f59e0b;--muted:#f3f4f6;--muted-strong:#e5e7eb;--ink-soft:#4b5563;--border:#111827;color:var(--fg);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Outfit,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}body:before,body:after{content:"";z-index:-1;pointer-events:none;position:fixed}body:before{background:var(--muted);border-radius:50%;width:38vw;min-width:360px;height:38vw;min-height:360px;top:-16vw;right:-14vw}body:after{background:var(--accent);opacity:.14;width:28vw;min-width:260px;height:28vw;min-height:260px;bottom:-12vw;left:-12vw;transform:rotate(16deg)}button{color:inherit;font:inherit;cursor:pointer;border:0}button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}img{max-width:100%;display:block}.app-shell{width:min(1760px,100%);min-height:100vh;margin:0 auto;padding:22px;position:relative}.calendar-toolbar,.month-switcher,.platform-filters,.day-heading,.modal-platforms,.calendar-title-row,.calendar-meta{align-items:center;display:flex}.calendar-toolbar{z-index:5;grid-template-columns:minmax(340px,1fr) auto;gap:18px;margin-bottom:18px;display:grid;position:relative}.calendar-title-block{z-index:3;background:var(--primary);color:#fff;border-radius:8px;min-height:132px;padding:18px;position:relative;overflow:visible}.calendar-title-block:before,.calendar-title-block:after{content:"";pointer-events:none;position:absolute}.calendar-title-block:before{background:#ffffff29;border-radius:50%;width:148px;height:148px;top:8px;right:24px}.calendar-title-block:after{background:#ffffff1f;width:118px;height:118px;bottom:8px;right:172px;transform:rotate(18deg)}.calendar-title-row{z-index:1;justify-content:space-between;gap:16px;position:relative}.calendar-title-block h1{letter-spacing:0;text-transform:uppercase;margin:0;font-size:clamp(34px,5vw,72px);font-weight:900;line-height:.88}.calendar-meta{z-index:1;flex-wrap:wrap;gap:8px;margin-top:18px;position:relative}.calendar-meta span{color:var(--primary);letter-spacing:0;text-transform:uppercase;background:#fff;border-radius:999px;padding:8px 11px;font-size:13px;font-weight:800}.month-switcher{z-index:60;gap:10px;position:relative}.month-label-button{min-width:178px;color:var(--fg);text-align:center;letter-spacing:0;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px 14px;font-size:18px;font-weight:900;display:flex}.month-label-button span{line-height:1}.month-switcher>button,.close-button{background:var(--fg);color:#fff;border-radius:8px;place-items:center;transition:background-color .16s,transform .16s;display:grid}.month-switcher>button{width:46px;height:46px}.month-switcher>button:hover,.close-button:hover{background:var(--accent);transform:scale(1.05)}.month-switcher>.month-label-button{width:auto;min-width:178px;color:var(--fg);background:#fff;display:flex}.month-switcher>.month-label-button:hover{background:var(--accent)}.month-picker-panel{z-index:40;border:2px solid var(--fg);width:min(420px,100vw - 44px);color:var(--fg);background:#fff;border-radius:8px;padding:12px;position:absolute;top:calc(100% + 10px);right:56px}.month-picker-panel:before{content:"";border-top:2px solid var(--fg);border-left:2px solid var(--fg);background:#fff;width:14px;height:14px;position:absolute;top:-9px;right:86px;transform:rotate(45deg)}.month-picker-year+.month-picker-year{border-top:2px solid var(--muted);margin-top:12px;padding-top:12px}.month-picker-year>strong{margin-bottom:8px;font-size:15px;font-weight:900;display:block}.month-picker-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;display:grid}.month-picker-grid button{background:var(--muted);min-height:38px;color:var(--fg);border-radius:8px;font-size:14px;font-weight:900;transition:background-color .16s,color .16s,transform .16s}.month-picker-grid button:hover{background:#d1fae5;transform:scale(1.04)}.month-picker-grid button.active{background:var(--primary);color:#fff}.platform-panel{z-index:1;background:var(--secondary);border-radius:8px;align-self:stretch;width:min(520px,42vw);padding:14px;position:relative;overflow:hidden}.platform-panel:before,.platform-panel:after{content:"";pointer-events:none;position:absolute}.platform-panel:before{background:#ffffff29;border-radius:50%;width:132px;height:132px;top:-38px;right:-38px}.platform-panel:after{background:#ffffff1f;width:112px;height:112px;bottom:-44px;left:24px;transform:rotate(-16deg)}.platform-filters{z-index:1;flex-wrap:wrap;place-content:center flex-end;gap:8px;height:100%;position:relative}.platform-filters button{min-height:44px;color:var(--fg);letter-spacing:0;text-transform:uppercase;background:#fff;border-radius:8px;padding:0 14px;font-size:14px;font-weight:900;transition:background-color .16s,color .16s,transform .16s}.platform-filters button:hover{background:#d1fae5;transform:scale(1.04)}.platform-filters button.active{background:var(--fg);color:#fff}.calendar-wrap{z-index:1;background:var(--fg);border-radius:8px;position:relative;overflow:hidden}.mobile-view-toggle,.mobile-release-list{display:none}.weekday-row{background:var(--fg);grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:2px 2px 0;display:grid}.weekday-row span{background:var(--accent);color:var(--fg);letter-spacing:0;text-transform:uppercase;border-radius:6px 6px 0 0;padding:13px 12px;font-size:12px;font-weight:900}.calendar-grid{background:var(--fg);grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:2px;display:grid}.day-cell{background:#fff;min-height:296px;padding:9px}.day-cell.muted{background:var(--muted);color:#9ca3af}.day-cell.today{background:#eff6ff}.day-cell.has-releases{background:#f8fafc}.day-heading{justify-content:space-between;margin-bottom:8px}.day-heading>span{background:var(--fg);color:#fff;border-radius:8px;place-items:center;width:34px;height:34px;font-size:18px;font-weight:900;line-height:1;display:grid}.day-cell.today .day-heading>span{background:var(--primary)}.day-heading small{background:var(--secondary);color:#fff;border-radius:999px;place-items:center;min-width:28px;height:28px;font-size:12px;font-weight:900;display:grid}.release-list{gap:7px;display:grid}.release-cover{background:var(--fg);text-align:left;border-radius:8px;min-height:98px;transition:transform .16s,background-color .16s;position:relative;overflow:hidden}.release-cover:first-child{min-height:148px}.release-cover:nth-of-type(n+2){min-height:86px}.release-cover:hover{transform:scale(1.02)}.release-cover img{object-fit:cover;width:100%;height:100%;transition:transform .16s;position:absolute;inset:0}.release-cover:hover img{transform:scale(1.04)}.release-cover:after{content:"";background:var(--fg);opacity:.84;height:58%;position:absolute;inset:auto 0 0}.release-cover span{z-index:1;color:#fff;letter-spacing:0;font-size:14px;font-weight:850;line-height:1.08;position:absolute;inset:auto 9px 9px}.more-cover{background:var(--primary);color:#fff;border-radius:8px;min-height:40px;font-size:14px;font-weight:900;transition:background-color .16s,transform .16s}.more-cover:hover{background:var(--primary-strong);transform:scale(1.02)}.release-loading-mask{z-index:18;pointer-events:none;background:#ffffffb8;place-items:center;display:grid;position:fixed;inset:0}.release-loading-card{background:var(--primary);color:#fff;text-align:center;border-radius:8px;min-width:160px;padding:18px 24px;position:relative;overflow:hidden}.release-loading-card:after{content:"";background:#ffffff2e;border-radius:50%;width:68px;height:68px;position:absolute;top:-22px;right:-18px}.release-loading-card span{z-index:1;letter-spacing:0;font-size:18px;font-weight:900;position:relative}.modal-backdrop{z-index:20;background:#111827db;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.game-modal{background:#fff;border-radius:8px;grid-template-columns:minmax(300px,.88fr) minmax(300px,1.12fr);width:min(1080px,100%);max-height:calc(100vh - 48px);display:grid;position:relative;overflow:hidden}.close-button{z-index:2;width:44px;height:44px;position:absolute;top:14px;right:14px}.modal-cover{object-fit:cover;background:var(--muted);width:100%;height:100%;min-height:560px}.modal-copy{flex-direction:column;justify-content:center;gap:16px;min-width:0;padding:42px;display:flex}.modal-copy p{margin:0}.modal-copy>p:first-child{background:var(--accent);width:fit-content;color:var(--fg);letter-spacing:0;text-transform:uppercase;border-radius:999px;padding:8px 11px;font-size:13px;font-weight:900}.modal-copy .original-title{color:var(--ink-soft);margin-top:-8px;font-size:16px;font-weight:700}.modal-copy h1{color:var(--fg);letter-spacing:0;margin:0;font-size:clamp(34px,4vw,64px);font-weight:900;line-height:.96}.modal-platforms{flex-wrap:wrap;gap:8px}.modal-platforms span,.modal-copy strong{background:var(--muted);width:fit-content;color:var(--fg);border-radius:999px;padding:9px 12px;font-size:13px;font-weight:850}.modal-platforms span:nth-child(2n){background:#d1fae5}.modal-platforms span:nth-child(3n){background:#dbeafe}.modal-copy strong{background:var(--fg);color:#fff}.game-description{background:var(--muted);border-radius:8px;max-height:210px;padding:16px;overflow:auto}.game-description p,.game-description span{color:var(--fg);margin:0;font-size:15px;line-height:1.58}@media (width<=1100px){.calendar-toolbar{grid-template-columns:1fr}.platform-panel{width:100%}.platform-filters{justify-content:flex-start}}@media (width<=980px){.app-shell{padding:12px}.calendar-title-row{flex-direction:column;align-items:flex-start}.month-switcher{width:100%}.month-label-button{flex:1;min-width:0}.calendar-wrap{overflow-x:auto}.weekday-row,.calendar-grid{min-width:1080px}.day-cell{min-height:308px}.game-modal{grid-template-columns:1fr;overflow:auto}.modal-cover{min-height:340px;max-height:440px}.modal-copy{padding:26px}}@media (width<=560px){.calendar-title-block{padding:14px}.calendar-title-block h1{font-size:38px}.platform-filters{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.platform-filters button{width:100%}}@media (width<=700px){.app-shell{padding:8px}.calendar-toolbar{gap:10px;margin-bottom:10px}.calendar-title-block{min-height:0}.calendar-title-block h1{font-size:clamp(32px,12vw,46px);line-height:.92}.calendar-meta{margin-top:12px}.calendar-meta span{padding:7px 9px;font-size:12px}.month-switcher{gap:8px}.month-switcher>button{width:44px;height:44px}.month-label-button{padding:12px 8px;font-size:16px}.month-switcher>.month-label-button{flex:1;width:auto;min-width:0}.month-picker-panel{width:auto;left:0;right:0}.month-picker-panel:before{right:52%}.month-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.platform-panel{padding:12px}.platform-filters{gap:7px}.platform-filters button{min-height:42px;padding:0 8px;font-size:13px}.calendar-wrap{overscroll-behavior-x:contain;scrollbar-width:none;overflow-x:auto}.mobile-view-toggle{background:var(--fg);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;margin-bottom:8px;padding:2px;display:grid}.mobile-view-toggle button{min-height:42px;color:var(--fg);background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:7px;font-size:14px;font-weight:900;display:flex}.mobile-view-toggle button.active{background:var(--accent)}.calendar-wrap.mobile-hidden-view{display:none}.mobile-release-list{gap:8px;display:grid}.mobile-release-list.mobile-hidden-view{display:none}.mobile-release-day{border:2px solid var(--fg);background:#fff;border-radius:8px;overflow:hidden}.mobile-release-date{background:var(--accent);color:var(--fg);justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.mobile-release-date strong,.mobile-release-date span{font-size:14px;font-weight:900}.mobile-release-date span{background:#fff;border-radius:999px;padding:5px 8px}.mobile-release-items{background:var(--fg);gap:1px;display:grid}.mobile-release-item{min-height:86px;color:var(--fg);text-align:left;background:#fff;grid-template-columns:96px minmax(0,1fr);gap:10px;padding:8px;display:grid}.mobile-release-item img{object-fit:cover;background:var(--muted);border-radius:6px;width:96px;height:70px}.mobile-release-item>span{flex-direction:column;justify-content:center;gap:5px;min-width:0;display:flex}.mobile-release-item strong,.mobile-release-item small{letter-spacing:0;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.mobile-release-item strong{color:var(--fg);-webkit-line-clamp:2;font-size:15px;font-weight:900;line-height:1.15}.mobile-release-item small{color:var(--ink-soft);-webkit-line-clamp:1;font-size:12px;font-weight:750;line-height:1.2}.mobile-empty-list{border:2px solid var(--fg);color:var(--fg);text-align:center;background:#fff;border-radius:8px;padding:22px 14px;font-size:14px;font-weight:900}.calendar-wrap::-webkit-scrollbar{display:none}.weekday-row,.calendar-grid{gap:1px;width:calc(155.556vw - 24.8889px);min-width:560px}.weekday-row{padding:1px 1px 0}.weekday-row span{text-align:center;white-space:nowrap;padding:9px 0;font-size:11px;overflow:hidden}.calendar-grid{padding:1px}.day-cell{min-height:112px;padding:4px}.day-cell.has-releases{min-height:132px}.day-heading{margin-bottom:4px}.day-heading>span{border-radius:6px;width:26px;height:26px;font-size:13px}.day-heading small{min-width:18px;height:18px;font-size:10px}.release-list{gap:0}.release-cover,.release-cover:first-child{border-radius:6px;min-height:72px}.release-cover:nth-of-type(n+2){min-height:54px}.release-cover:after{height:42%}.release-cover span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.05;display:-webkit-box;inset:auto 5px 5px;overflow:hidden}.modal-backdrop{padding:10px}.game-modal{max-height:calc(100vh - 20px)}.modal-cover{object-fit:contain;background:var(--fg);width:100%;height:auto;min-height:0;max-height:46vh}.modal-copy{gap:12px;padding:20px}.modal-copy h1{font-size:clamp(28px,10vw,42px)}}@media (width<=430px){.day-cell{min-height:104px}.day-cell.has-releases{min-height:124px}.day-heading>span{width:24px;height:24px;font-size:12px}.release-cover,.release-cover:first-child{min-height:66px}.release-cover:nth-of-type(n+2){min-height:50px}.release-cover span{font-size:10px}}
