/* A light, code-rendered Switch: shaped Joy-Cons, glass, seams and physical depth. */
.hero-switch{position:absolute;z-index:3;right:clamp(72px,11vw,160px);top:clamp(38px,6vh,64px);width:clamp(220px,24vw,310px);perspective:800px}
.hero-switch__launch{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;transform:rotate(-9deg) rotateX(12deg) rotateY(-8deg);transition:transform .35s cubic-bezier(.2,.7,.2,1);-webkit-tap-highlight-color:transparent}
.hero-switch__launch:hover{transform:rotate(-5deg) rotateX(4deg) rotateY(-3deg) translateY(-5px)}
.hero-switch__launch:focus-visible{outline:2px solid #0a84ff;outline-offset:12px;border-radius:18px}
.switch-device{position:relative;display:block;aspect-ratio:240/102;width:100%;container-type:inline-size;isolation:isolate;font-family:Arial,Helvetica,sans-serif;font-weight:400;text-align:left;line-height:1.2;color:#f6f6f6;filter:drop-shadow(0 1.1cqw .65cqw #302e2944)}
.switch-device::before{content:"";position:absolute;inset:2.3% 0 -2.3%;background:#17191b;border-radius:6.5cqw;box-shadow:0 .55cqw .3cqw #0005,0 3cqw 3cqw -.8cqw #302e2928;z-index:-1}
.switch-tablet{position:absolute;left:13.5%;top:1.2%;width:73%;height:97.6%;border-radius:1.7cqw;background:linear-gradient(128deg,#333538 0%,#111315 28%,#1c1e20 78%,#343637);box-shadow:inset 0 .25cqw .2cqw #ffffff55,inset 0 -.3cqw .2cqw #000,0 .35cqw .15cqw #000;overflow:hidden}
.switch-tablet::before{content:"";position:absolute;inset:.6% .4%;border:1px solid #08090a;border-radius:1.5cqw;pointer-events:none;z-index:3}
.switch-tablet::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#fff0 30%,#ffffff05 48%,#fff0 58%);pointer-events:none;z-index:3}
.switch-screen{position:absolute;inset:10% 10.1%;background:#282828;border:1px solid #060708;box-shadow:0 0 0 .35cqw #060708,inset 0 0 .8cqw #000b;overflow:hidden;container-type:inline-size}
.switch-speaker{position:absolute;bottom:4%;width:2.6%;height:1.5%;border-radius:20px;background:#08090a;box-shadow:inset 0 .1cqw .1cqw #000}
.switch-speaker--left{left:6.5%}.switch-speaker--right{right:6.5%}
.switch-joy{position:absolute;top:0;width:13.8%;height:100%;isolation:isolate;border:1px solid #0002;box-shadow:inset .35cqw .3cqw .5cqw #ffffff4a,inset -.45cqw -.35cqw .7cqw #0003,0 .45cqw .15cqw #0007}
.switch-joy--left{left:0;border-radius:6.4cqw .7cqw .7cqw 6.4cqw;background:linear-gradient(100deg,#009bb8,#21c7e6 20%,#16bedc 74%,#0097b6)}
.switch-joy--right{right:0;border-radius:.7cqw 6.4cqw 6.4cqw .7cqw;background:linear-gradient(95deg,#e63739,#ff5354 28%,#ff4b4b 76%,#d33035)}
.switch-joy::after{content:"";position:absolute;top:7%;bottom:6%;width:1px;background:#0003;pointer-events:none}
.switch-joy--left::after{right:4%}.switch-joy--right::after{left:4%}
.switch-control{position:absolute;display:grid;place-items:center;border:0;padding:0;background:radial-gradient(ellipse at 38% 25%,#4a4a4c,#28282a 55%,#171719);color:#e3e3e5;font-family:Arial,sans-serif;line-height:1;font-weight:400;font-size:1.4cqw;box-shadow:inset 0 .1cqw .13cqw #ffffff60,inset 0 -.12cqw .1cqw #000,0 .2cqw .25cqw #0007;z-index:2;user-select:none;-webkit-tap-highlight-color:transparent}
button.switch-control{cursor:pointer;touch-action:manipulation}
button.switch-control:hover{filter:brightness(1.25)}
button.switch-control:active,.switch-control.is-pressed{translate:0 .15cqw;box-shadow:inset 0 -.1cqw .2cqw #000,0 .05cqw .1cqw #0008}
button.switch-control:focus-visible{outline:.23cqw solid white;outline-offset:.35cqw}
.switch-stick{width:48%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 43% 39%,#373739 0 52%,#111 54% 62%,#49494b 65%,#141415 72%);box-shadow:0 .2cqw .5cqw #000b,inset 0 .15cqw .1cqw #ffffff55,0 0 0 .3cqw #0002}
.switch-stick::after{content:"";position:absolute;inset:11%;border-radius:50%;border:1px solid #ffffff0d;background:repeating-linear-gradient(20deg,#fff0 0 1px,#ffffff03 1px 2px)}
.switch-joy--left .switch-stick{top:21%;left:23%}.switch-joy--right .switch-stick{top:53%;left:23%}
.switch-small{top:10.5%;width:18%;height:5%;background:#292a2c;font-size:2cqw;border-radius:.18cqw}
.switch-minus{right:13%;height:2%;top:12%}.switch-plus{left:13%;box-shadow:none;background:none;color:#26272a;font-size:3cqw;text-shadow:0 1px #fff4}
.switch-cluster{position:absolute;width:70%;height:24%;left:15%;top:48%}
.switch-joy--right .switch-cluster{top:19%}
.switch-round{width:31%;aspect-ratio:1;border-radius:50%}
.switch-round--up{left:34.5%;top:0}.switch-round--down{left:34.5%;bottom:0}.switch-round--left{left:0;top:34.5%}.switch-round--right{right:0;top:34.5%}
.switch-direction{font-size:.9cqw;color:#101112;text-shadow:0 .08cqw #fff4}
.switch-capture{left:45%;bottom:16%;width:23%;aspect-ratio:1;border-radius:.3cqw;font-size:1.3cqw;color:#111}
.switch-home{left:31%;bottom:14%;width:28%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#343638 54%,#a7a9aa 58%,#6d7071 69%,#222 73%);font-size:1.5cqw;color:#aaa}
.switch-home svg{width:54%;height:54%;fill:#b6b7b8}
.switch-shoulder{position:absolute;width:11%;height:2.5%;top:-.5%;background:#222629;z-index:-1;border-radius:2cqw 1cqw 0 0;box-shadow:0 -.1cqw .1cqw #444}
.switch-shoulder--left{left:1.5%}.switch-shoulder--right{right:1.5%;border-radius:1cqw 2cqw 0 0}
.switch-mini-os{display:flex;flex-direction:column;height:100%;padding:5%;gap:8%;color:#fff;background:#2d2d2d;font:500 4cqw Arial,sans-serif}
.switch-mini-os__top{display:flex;justify-content:space-between;font-size:4cqw;align-items:center}
.switch-mini-os__top b{border-radius:50%;background:#50b5e9;padding:2% 3%;font-weight:500}
.switch-mini-os__tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:3%;height:51%}
.switch-mini-os__tile{background:linear-gradient(140deg,#135c7d,#359dbb);display:grid;place-items:center;font-size:8cqw;color:#ffffffaa}
.switch-mini-os__tile:first-child{outline:1.2cqw solid #27e2dd;outline-offset:1.2cqw}
.switch-mini-os__tile:nth-child(2){background:linear-gradient(150deg,#984336,#e59c72)}
.switch-mini-os__tile:nth-child(3){background:linear-gradient(130deg,#6761a9,#a4a0ce)}
.switch-mini-os__tile:nth-child(4){background:linear-gradient(150deg,#327464,#7dbc98)}
.game-switch-dialog{width:min(1180px,calc(100vw - 64px),calc((100svh - 80px) * 240 / 102));max-width:none;max-height:none;margin:auto;padding:0;border:0;overflow:visible;background:transparent;box-shadow:none;overscroll-behavior:contain}
.game-switch-dialog::backdrop{background:#171510a3;backdrop-filter:blur(9px)}
.game-switch-dialog[open]{animation:switch-dialog-in .28s ease both}
.game-switch-dialog__content{position:relative;padding:0}
body.game-switch-open{overflow:hidden}
.switch-os{--os-bg:#2d2d2d;--os-ink:#f4f4f4;--os-line:#ffffff24;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:3cqw;padding:4cqw 4.5cqw;height:100%;color:var(--os-ink);background:var(--os-bg);font:400 2.3cqw/1.3 Arial,sans-serif}
.switch-os[data-theme="light"]{--os-bg:#eee;--os-ink:#252525;--os-line:#0003}
.switch-os__status{display:flex;align-items:center;justify-content:space-between;min-width:0;font-size:2.1cqw}
.switch-os__profile{display:flex;align-items:center;gap:1.5cqw;letter-spacing:.01em}
.switch-os__avatar{display:grid;place-items:center;background:#24a7cc;color:white;width:4.8cqw;aspect-ratio:1;border-radius:50%;border:1px solid #ffffff88;font-weight:600}
.switch-os__signals{display:flex;align-items:center;gap:2cqw;white-space:nowrap}
.switch-os__battery{position:relative;display:inline-block;width:3.5cqw;height:1.8cqw;border:.22cqw solid currentColor;border-radius:.2cqw}
.switch-os__battery::before{content:"";position:absolute;inset:.25cqw;background:currentColor}
.switch-os__battery::after{content:"";position:absolute;width:.4cqw;height:.8cqw;right:-.6cqw;top:.3cqw;background:currentColor}
.switch-os__wifi{width:3.3cqw;height:2.5cqw;fill:currentColor}
.switch-os__library{display:flex;flex-direction:column;min-height:0;gap:2cqw}
.switch-os__library-head{display:flex;align-items:baseline;justify-content:space-between;gap:1cqw}
.switch-os__library-head h3{font-size:3cqw;font-weight:400;letter-spacing:0;line-height:1.1}
.switch-os__library-head span{font-size:1.8cqw;opacity:.65}
.switch-os__games{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:calc((100% - 2cqw) / 2);gap:2cqw;min-height:0;flex:1;overflow:auto;padding:1cqw;margin:-1cqw;overscroll-behavior:contain;scrollbar-width:thin}
.switch-game{position:relative;border:0;padding:0;min-width:0;min-height:0;overflow:hidden;color:white;cursor:pointer;background:linear-gradient(140deg,var(--game-deep),var(--game-light));outline:0;isolation:isolate;text-align:left;touch-action:manipulation}
.switch-game::before{content:"";position:absolute;width:60%;aspect-ratio:1;border:2cqw solid #ffffff24;border-radius:50%;top:-25%;right:-8%;z-index:-1}
.switch-game::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0008,#0000 65%);pointer-events:none}
.switch-game img{width:100%;height:100%;object-fit:cover;display:block}
.switch-game[aria-pressed="true"],.switch-game:focus-visible{outline:.55cqw solid #24d9d6;outline-offset:.35cqw}
.switch-game__number{position:absolute;top:9%;left:10%;font-size:4.5cqw;font-weight:600;letter-spacing:-.05em;opacity:.55}
.switch-game__text{position:absolute;inset:auto 8% 9%;font-size:2.2cqw;line-height:1.1;z-index:1;text-shadow:0 1px 3px #0007}
.switch-game__text small{display:block;margin-top:.8cqw;font-size:1.45cqw;opacity:.65;text-transform:uppercase;letter-spacing:.06em}
.switch-os__games[data-view="list"]{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:calc((100% - 6cqw) / 4)}
.switch-os__games[data-view="list"] .switch-game__number{font-size:2.8cqw;top:25%;left:4%}
.switch-os__games[data-view="list"] .switch-game__text{inset:24% 4% auto 22%;font-size:1.9cqw}
.switch-os__games[data-view="list"] small{display:none}
.switch-os__footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--os-line);padding-top:2cqw;gap:2cqw}
.switch-os__tools{display:flex;gap:1.7cqw}
.switch-os__tool{display:grid;place-items:center;width:4.5cqw;aspect-ratio:1;border:0;border-radius:50%;background:#ffffff15;color:var(--os-ink);font-size:2.8cqw;cursor:pointer}
.switch-os__tool:hover,.switch-os__tool:focus-visible{outline:.4cqw solid #24d9d6;outline-offset:.3cqw}
.switch-os__tool svg{width:58%;height:58%;fill:none;stroke:currentColor;stroke-width:1.7}
.switch-os__hint{display:flex;align-items:center;gap:1cqw;font-size:1.9cqw;white-space:nowrap}
.switch-os__hint b{font-size:1.6cqw;border:1px solid currentColor;border-radius:50%;width:2.6cqw;aspect-ratio:1;display:inline-grid;place-items:center;font-weight:400;margin-left:1.2cqw}
.switch-os__detail{min-height:0;display:grid;grid-template-columns:35% minmax(0,1fr);gap:4cqw;align-items:center}
.switch-os__detail[hidden],.switch-os__library[hidden]{display:none}
.switch-os__detail-art{position:relative;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:linear-gradient(140deg,var(--game-deep),var(--game-light));font-size:12cqw;font-weight:600;color:#ffffff70}
.switch-os__detail-art img{width:100%;height:100%;object-fit:cover}
.switch-os__detail-copy p{font-size:1.8cqw;color:#26d9d6;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2cqw}
.switch-os__detail-copy h3{font-size:4.5cqw;font-weight:400;line-height:1.1;letter-spacing:-.025em;margin-bottom:2cqw}
.switch-os__detail-copy div{font-size:2.4cqw;line-height:1.5;opacity:.75}
@keyframes switch-dialog-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:680px){
  .hero-switch{right:34px;top:108px;width:clamp(150px,42vw,190px)}
  .game-switch-dialog{width:calc(100vw - 32px)}
  button.switch-control::before{content:"";position:absolute;inset:-35%;border-radius:inherit}
}
/* Turn the complete console on narrow portrait phones so its own controls stay usable. */
@media(max-width:480px) and (orientation:portrait){
  .game-switch-dialog{--console-width:min(calc(100svh - 72px),calc((100vw - 48px) * 240 / 102));width:calc(100vw - 48px);height:var(--console-width)}
  .game-switch-dialog__content{height:100%}
  .game-switch-dialog [data-switch-console]{position:absolute;left:50%;top:50%;width:var(--console-width);transform:translate(-50%,-50%) rotate(90deg)}
}
@media(prefers-reduced-motion:reduce){.hero-switch__launch{transition:none}.game-switch-dialog[open]{animation:none}}
