@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--bg:#f6f7f9;--ink:#202631;--muted:#9298a3;--green:#42846b;--line:#e7e9ed}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:13px}button,input,select,textarea{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button{border:0;background:none;color:inherit}aside{position:fixed;width:235px;height:100dvh;background:white;border-right:1px solid var(--line);padding:38px 23px;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:10px;color:var(--ink);font:800 25px 'Outfit',sans-serif;letter-spacing:1px;text-decoration:none}.logo>span{color:var(--green);font-size:31px}.logo i{color:#73a98b;font-size:9px;align-self:flex-start;margin-top:5px}.space-label{font:500 10px 'Outfit';letter-spacing:2px;color:#a6abb4;margin:54px 14px 17px}nav{display:grid;gap:9px}.nav{padding:14px;display:flex;gap:13px;align-items:center;text-align:left;color:#818894;border-radius:7px;font-size:17px}.nav span{font-size:12px;flex:1}.nav b{font-size:10px;font-weight:500;background:#dce9e1;padding:2px 6px;border-radius:4px}.nav.active{background:#edf3ef;color:#3d765c;font-weight:700}.aside-bottom{margin-top:auto}.save-dot{font-size:10px;color:#809889;margin:15px 7px}.aside-bottom>button{color:#8b919a;font-size:11px;padding:10px 7px}.profile{display:flex;gap:10px;border-top:1px solid var(--line);margin-top:20px;padding-top:23px;font-size:10px}.avatar{display:flex;align-items:center;justify-content:center;background:#e8ede7;color:#64816c;width:34px;height:34px;border-radius:50%;font:600 14px 'Outfit';flex-shrink:0}.profile small{display:block;font-size:8px;color:#a0a4ac;margin-top:6px}main{margin-left:235px;padding:0 46px;max-width:1740px}header{height:91px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}header>span{font:500 10px 'Outfit';letter-spacing:2px;color:#949ba5}.header-right{display:flex;gap:23px;align-items:center}.private{color:#8b929d;font-size:10px}.small{width:29px;height:29px}.intro{padding:43px 0 32px;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font:600 10px 'Outfit';letter-spacing:2.1px;color:var(--green)}h1{font-size:26px;letter-spacing:1px;margin:13px 0 12px;font-weight:700}h1 span{color:var(--green)}.intro p{color:#9298a2;font-size:11px;line-height:1.9;margin:0}.mobile{display:none}.primary{background:var(--green);color:white;padding:13px 20px;border-radius:6px;font-size:11px;white-space:nowrap;box-shadow:0 3px 8px #42846b14}.primary:hover{background:#336c55}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.stats>div{position:relative;background:white;border:1px solid var(--line);border-radius:9px;padding:21px 23px}.stats span{font-size:10px;color:#8e96a0}.stats strong{display:block;font:500 32px 'Outfit';margin-top:10px;letter-spacing:-1px}.stats small{font:400 10px 'Noto Sans JP';color:#9a9faa;letter-spacing:0;margin-left:7px}.stats i{position:absolute;right:20px;top:22px;font-style:normal;color:#8da49a;font-size:17px}.collection{margin-top:39px}.section-heading{display:flex;justify-content:space-between;align-items:center}h2{font-size:15px;letter-spacing:.5px;margin:0}.section-heading h2 span{font:400 11px 'Outfit';color:#9ba2ac;margin-left:9px}.sample{font-size:9px;border:1px solid #dce3dc;border-radius:4px;color:#84917f;padding:4px 8px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:20px 0 25px;gap:12px}.tabs{display:flex;background:#eceedf00;gap:4px}.tabs button{font-size:10px;color:#9299a4;padding:8px 13px;border-radius:5px}.tabs button.selected{background:#e5ede7;color:#46735b;font-weight:600}.controls{display:flex;gap:10px}.search{display:flex;align-items:center;gap:7px;background:white;border:1px solid var(--line);padding:7px 10px;border-radius:5px;color:#a0a7af}.search input{width:125px;border:0;background:transparent;outline:none;font-size:10px}.controls select{border:1px solid var(--line);color:#7a828d;background:white;border-radius:5px;padding:7px;font-size:10px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px}.card{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:white;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 9px 20px #25392c0d}.cover{height:225px;position:relative;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:var(--cover);color:white;padding:25px 16px}.cover:before{content:'';position:absolute;width:170px;height:170px;border:1px solid #ffffff35;transform:rotate(45deg);border-radius:25%;box-shadow:0 0 70px #ffffff12,inset 0 0 60px #ffffff12}.cover:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0005,transparent 65%)}.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover-title{position:relative;z-index:1;font:600 28px 'Outfit';letter-spacing:2px;line-height:1.05;text-shadow:0 2px 12px #0008}.cover-title small{display:block;font-size:8px;letter-spacing:3px;margin-top:15px}.cover .badge{position:absolute;left:12px;top:12px;z-index:2;padding:4px 8px;border-radius:4px;background:#ffffffed;color:#557665;font-size:9px}.heart{position:absolute;right:10px;top:9px;z-index:3;color:white;background:#151d2360;border-radius:50%;width:27px;height:27px;font-size:16px}.heart.on{color:#fff0c2}.card-info{padding:15px 14px 12px}.game-title{display:block;text-align:left;width:100%;padding:0;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform{font:400 9px 'Outfit',sans-serif;color:#969da7;margin:7px 0 13px}.card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f0f1f3;padding-top:11px}.stars{font-size:11px;letter-spacing:1px;color:#c4a364}.unrated{font-size:9px;color:#b4b9c0}.duration{color:#969ca5;font:400 10px 'Outfit'}.empty{text-align:center;padding:65px 15px;color:#9298a2}.empty>span{font-size:40px;color:#79a38a}.empty h3{color:#4c6257;font-size:17px}.empty p{font-size:11px;margin-bottom:25px}footer{display:flex;align-items:center;gap:17px;border-top:1px solid var(--line);margin-top:36px;padding:22px 0;color:#a7adb6}footer>span{font:600 11px 'Outfit';letter-spacing:2px}footer p{font:400 10px 'Outfit'}footer button{margin-left:auto;font-size:9px;color:#8a9a8f}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;width:min(510px,calc(100% - 28px));max-height:90dvh;color:var(--ink);box-shadow:0 24px 100px #14281e25}dialog::backdrop{background:#15241d70;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dialog-head h2{font-size:21px;margin-top:8px}#close{font-size:28px;color:#9a9fa8}form label{display:block;font-size:11px;color:#727b85;margin:15px 0}form input:not([type=checkbox]),form select,form textarea{display:block;width:100%;border:1px solid #dce2df;border-radius:5px;padding:11px;margin-top:7px;background:#fcfdfc;color:var(--ink);outline-color:var(--green)}.form-row{display:flex;gap:14px}.form-row label{flex:1;min-width:0}.check{display:flex;align-items:center;gap:7px}.form-actions{display:flex;justify-content:space-between;align-items:center;margin-top:25px}.danger{color:#b16b65;font-size:11px}#error{color:#b05b52;font-size:11px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#294c3a;color:white;border-radius:6px;padding:12px 22px;box-shadow:0 4px 30px #0002;opacity:0;pointer-events:none;transition:opacity .2s;font-size:12px;z-index:10}#toast.visible{opacity:1}button:focus-visible,a:focus-visible{outline:2px solid #42846b;outline-offset:4px}@media(min-width:1450px){.cover{height:280px}main{padding:0 60px}}@media(max-width:1150px){aside{width:190px;padding:30px 17px}main{margin-left:190px;padding:0 28px}.intro h1{font-size:21px}.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.toolbar{flex-wrap:wrap}.cover{height:235px}.stats>div{padding:18px 15px}.stats i{right:13px}}@media(max-width:760px){aside{position:static;width:100%;height:auto;padding:20px;border-right:0;border-bottom:1px solid var(--line)}.logo{font-size:23px}.space-label,.aside-bottom,nav{display:none}main{margin:0;padding:0 20px}header{height:52px}.private{font-size:8px}.header-right{gap:10px}.intro{padding:28px 0;align-items:flex-start;flex-direction:column;gap:19px}.intro h1{font-size:25px;line-height:1.6;margin-top:8px}.mobile{display:block}.intro p{font-size:10px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stats>div{padding:16px}.stats strong{font-size:29px}.collection{margin-top:28px}.toolbar{margin-top:16px}.tabs{width:100%;justify-content:space-between}.controls{width:100%}.search{flex:1}.search input{width:100%}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}.cover{height:215px}.cover-title{font-size:23px}.card-info{padding:12px 10px}.game-title{font-size:10px}footer{flex-wrap:wrap;gap:10px}footer button{width:100%;text-align:left;padding:7px 0}footer p{font-size:9px}.form-row{gap:10px}}@media(max-width:380px){.cover{height:180px}.cover-title{font-size:19px}}
