/* Nygui Calm Games V2 — scoped visual language with gentle motion */
.ng-calm{--ng-ink:#483a63;--ng-muted:#786985;--ng-pink:#d978ad;--ng-plum:#8d6298;--ng-line:#e9d8e7;--ng-card:#fffafc;--ng-cream:#fffaf2;--ng-lilac:#eee8fb;--ng-sage:#b3cfb5;max-width:1040px;color:var(--ng-ink);padding-bottom:36px;isolation:isolate}
.ng-calm *{box-sizing:border-box}
.ng-calm button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ng-calm button:disabled{cursor:default;opacity:.52}
.ng-calm button:focus-visible{outline:3px solid #a76d9f;outline-offset:4px}
.ng-calm-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;padding:clamp(19px,4vw,34px);border:1px solid #e3cee1;border-radius:26px 26px 0 0;background:linear-gradient(127deg,#fff7fc,#eae7fd 63%,#e4f0e8);box-shadow:0 14px 32px #1f0e241a}
.ng-calm-head .eyebrow{color:#996391;letter-spacing:.17em;font-size:.68rem;font-weight:750}
.ng-calm-head h1{font-size:clamp(2rem,5vw,3.5rem);font-family:Georgia,'Times New Roman',serif;color:#64447a;letter-spacing:-.035em;margin:6px 0 10px;font-weight:600}
.ng-calm-head p{color:#6a5879;line-height:1.6;max-width:510px;margin:0;font-size:1rem}
.ng-sound{white-space:nowrap;align-self:start;border:1px solid #cbadd2;color:#6b517d;background:#fff9fe;border-radius:100px;padding:9px 16px;font-size:.85rem!important;font-weight:700!important;box-shadow:0 3px 10px #916b9920}
.ng-sound[aria-pressed=true]{color:#713e77;background:#fae8f7;border-color:#b98bc7}
.ng-meadow{height:170px;position:relative;overflow:hidden;background:linear-gradient(180deg,#d9d3ef 0%,#f8dcd9 64%,#e5eddf 100%);border:1px solid #e3cee1;border-top:0;border-radius:0 0 26px 26px;margin-bottom:12px}
.ng-sun{position:absolute;width:73px;height:73px;border-radius:50%;background:#fff4ca;top:22px;right:17%;box-shadow:0 0 0 12px #ffefcf50,0 0 40px #ffe4a5}
.ng-cloud{position:absolute;border-radius:100px;background:#fffaf9b0;height:18px;width:91px;top:37px;left:11%;box-shadow:18px -12px #fffaf9b0,45px 4px #fffaf9b0}
.ng-cloud-two{left:58%;top:60px;transform:scale(.72)}
.ng-hill{position:absolute;width:85%;height:140px;border-radius:50% 50% 0 0;background:#a0b7b2;bottom:-92px;left:-8%}
.ng-hill-two{background:#b4c9a9;left:33%;bottom:-93px;width:90%;height:120px}
.ng-meadow-blossom{position:absolute;z-index:1;bottom:12px;left:33%;font-size:36px;color:#f6d7e7;text-shadow:1px 2px #9f829c}
.ng-calm-clarity,.ng-calm-footer{font-size:.88rem;color:var(--ng-muted);line-height:1.55;margin:12px 2px 20px}
.ng-calm-footer{margin-top:20px}
.ng-game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1000px;margin:20px 0 22px}
.ng-game-card{min-height:166px;padding:18px 20px;border:1px solid #e4d1e5;border-radius:22px;background:linear-gradient(135deg,#fffafc,#f4ebf7);box-shadow:0 5px 18px #2f1c3517;display:grid;grid-template-columns:64px minmax(0,1fr) 25px;grid-template-rows:auto auto 1fr;column-gap:13px;row-gap:5px;text-align:left;align-items:center;color:var(--ng-ink);transition:transform .2s,box-shadow .2s}
.ng-game-card:hover{transform:translateY(-3px);box-shadow:0 9px 23px #2f1c3525}
.ng-game-card .ng-card-badge{grid-row:1/4;width:60px;height:72px;display:grid;place-items:center;border:1px solid #d9c7df;border-radius:18px;background:linear-gradient(150deg,#fff8fb,#dacde8);font-size:37px;color:#9b6da3;text-shadow:0 2px #fff}
.ng-game-card strong{grid-column:2/3;font-size:1.13rem;line-height:1.25}
.ng-game-summary{grid-column:2/3;font-size:.91rem;color:#665473;line-height:1.4}
.ng-game-card small{grid-column:2/3;font-size:.78rem;color:#956e96;margin-top:2px;line-height:1.4}
.ng-card-arrow{grid-column:3;grid-row:1/4;justify-self:end;font-size:1.3rem;color:#a96eaa}
.ng-game-card-grounding .ng-card-badge{background:linear-gradient(145deg,#fcf5e3,#d8ecdf);color:#7b9b7d}
.ng-game-card-solitaire .ng-card-badge{background:linear-gradient(145deg,#fdf4eb,#eddbed);color:#9b5b75}
.ng-game-card-mahjong .ng-card-badge{background:linear-gradient(145deg,#fff4e1,#dcf0e9);color:#719581}
.ng-game-card-memory .ng-card-badge{background:linear-gradient(145deg,#fcebf4,#efe2fa);color:#b87b9b}
.ng-game-card-picture .ng-card-badge{background:linear-gradient(145deg,#e5edfa,#f7e9e9);color:#7b8eb3}
.ng-stage{scroll-margin-top:24px;margin-top:15px;min-height:130px;padding:clamp(15px,3.5vw,32px);border:1px solid #e3d0e4;border-radius:24px;background:linear-gradient(140deg,#fffbfc,#faf5fd 55%,#f5f8f5);color:var(--ng-ink);box-shadow:0 7px 20px #2f1c3514;outline:none}
.ng-stage>p:first-child{margin:0;font-size:.98rem;color:#88748b}
.ng-play-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}
.ng-back{border:1px solid #ddc7df;background:#fff9fc;border-radius:30px;color:#795782;padding:8px 14px;flex:0 0 auto}
.ng-play-title{display:flex;align-items:center;gap:11px}
.ng-play-title>span{font-size:32px;color:#c18db5}
.ng-play-title h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.2rem,3vw,1.65rem);color:#694978;margin:0;font-weight:600}
.ng-play-title p{font-size:.86rem;color:#826b86;margin:3px 0 0;line-height:1.4}
.ng-primary,.ng-secondary{border-radius:100px;min-height:42px;padding:10px 18px;font-weight:700!important;font-size:.92rem!important;transition:transform .15s,filter .15s}
.ng-primary{background:linear-gradient(135deg,#ce80aa,#ac78b4);border:1px solid #a575a5;color:white;box-shadow:0 4px 12px #b280b343}
.ng-secondary{border:1px solid #d6bed9;background:#fffafd;color:#775a83}
.ng-primary:hover,.ng-secondary:not(:disabled):hover{filter:brightness(1.03);transform:translateY(-1px)}
.ng-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:20px 0 3px}
.ng-feedback-line{font-size:.88rem;color:#7e6884;line-height:1.5;margin:15px 0}
.ng-game-info{font-size:.83rem;color:#8c6e91;margin:10px 0}
.ng-step{color:#9a6b8b;font-size:.8rem;margin:5px 0}
.ng-step-dots{display:flex;gap:7px;margin:8px 0 18px}
.ng-step-dots span{width:26px;height:6px;background:#e7d8e4;border-radius:20px}
.ng-step-dots span.filled{background:#a0b99f}
.ng-garden-scene{height:190px;border-radius:22px;background:linear-gradient(180deg,#dfd9f0,#f9e3db 66%,#d5e9cd);position:relative;overflow:hidden;margin:16px 0}
.ng-garden-sun{position:absolute;top:27px;right:18%;width:61px;height:61px;border-radius:50%;background:#fff0bc;box-shadow:0 0 30px #ffe7ad}
.ng-garden-cloud{position:absolute;top:37px;left:16%;height:19px;width:75px;border-radius:100px;background:#fffaf6af;box-shadow:21px -12px #fffaf6af,39px 5px #fffaf6af}
.ng-garden-hill{position:absolute;bottom:-87px;left:-10%;width:83%;height:160px;border-radius:50% 50% 0 0;background:#a8c5b6}
.ng-garden-hill.front{left:35%;width:85%;bottom:-97px;background:#bdd1a6}
.ng-blooms{position:absolute;z-index:1;inset:auto 5% 9px;display:flex;align-items:end;justify-content:space-around}
.ng-bloom{display:flex;align-items:center;flex-direction:column;position:relative;transform:translateY(7px);opacity:.8;transition:transform .5s,opacity .5s}
.ng-bloom.bloomed{transform:translateY(0);opacity:1}
.ng-bloom-head{font-size:26px;color:#e6deeb;text-shadow:1px 2px #b6a1bc}
.ng-bloom.bloomed .ng-bloom-head{font-size:38px;color:#fdf0f5;text-shadow:0 0 1px #b16d97,1px 2px #b16d97}
.ng-bloom-stem{width:5px;height:33px;border-radius:7px;background:#88aa86}
.ng-grounding-copy{max-width:670px}
.ng-grounding-copy h3{font-size:1.27rem;color:#695276;margin:15px 0 6px}
.ng-grounding-copy>p{font-size:.96rem;line-height:1.6;color:#5d516c}
.ng-tip{font-size:.91rem!important;color:#947e99!important}
.ng-grounding-copy label{display:block;margin-top:16px;margin-bottom:5px;font-size:.86rem;font-weight:700;color:#785f84}
.ng-grounding-copy textarea{resize:vertical;border:1px solid #d9c5db;border-radius:13px;background:#fffdfd;padding:11px 13px;width:100%;font:inherit;color:#4e3e5b;line-height:1.5;min-height:68px}
.ng-private{color:#98829c!important;font-size:.78rem!important;margin-top:6px!important}
.ng-memory-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:550px;gap:10px;margin:16px 0}
.ng-memory-card{width:100%;aspect-ratio:1/.95;min-height:60px;position:relative;display:grid;place-items:center;border:2px solid #dbbfda;border-radius:15px;background:linear-gradient(145deg,#dbcae7,#f6e4ee);box-shadow:inset 0 2px 0 #ffffff80,0 3px 7px #3c224012;transition:background .25s,border-color .25s,transform .2s}
.ng-memory-card:hover:not(:disabled){transform:translateY(-2px)}
.ng-memory-card .ng-memory-back{font-size:32px;color:#fff5fe;text-shadow:1px 2px #bc95c5}
.ng-memory-card .ng-memory-front{display:none;font-size:36px;line-height:1}
.ng-memory-card.revealed{background:linear-gradient(140deg,#fffcf5,#f4f1f9);border-color:#b8a0c9}
.ng-memory-card.revealed .ng-memory-back{display:none}
.ng-memory-card.revealed .ng-memory-front{display:block}
.ng-memory-card.matched{background:linear-gradient(140deg,#e7f1e5,#fdf6f8);border-color:#b2cbb9;opacity:.9}
.ng-symbol-flower{color:#d084aa!important}.ng-symbol-moon{color:#927ab4!important}.ng-symbol-heart{color:#ce869b!important}.ng-symbol-tea{color:#bf937c!important}.ng-symbol-star{color:#d3a67a!important}.ng-symbol-music{color:#8b9abf!important}.ng-symbol-leaf{color:#83aa8e!important}.ng-symbol-cloud{color:#95aaca!important}.ng-symbol-sun{color:#d7b46c!important}
.ng-mahjong-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;max-width:650px;padding:clamp(8px,2vw,18px);border-radius:18px;background:linear-gradient(135deg,#deebe1,#e7e2ee);border:1px solid #c9d5c4;box-shadow:inset 0 0 0 4px #fff9f654;margin:16px 0}
.ng-tile-cell{width:100%;aspect-ratio:4/5;min-width:0;display:grid;place-items:center}
.ng-mahjong-tile{width:100%;height:100%;border:2px solid #ddd0c4;border-bottom:5px solid #b9acaa;border-radius:11px;background:linear-gradient(140deg,#fffdfa,#f4ede3);box-shadow:2px 3px 3px #7868821b;display:grid;place-items:center;font-size:clamp(22px,4vw,34px);transition:transform .15s,box-shadow .15s,border-color .15s}
.ng-mahjong-tile.free:hover{transform:translateY(-3px);box-shadow:2px 6px 10px #7868822b}
.ng-mahjong-tile.locked{opacity:.58;filter:saturate(.62)}
.ng-mahjong-tile.chosen,.ng-mahjong-tile.hint{border-color:#b979ab;box-shadow:0 0 0 3px #efd2e5}
.ng-picture-frame{background:linear-gradient(145deg,#e4dced,#d7e9dc);border-radius:23px;padding:12px;max-width:585px;margin:18px 0}
.ng-picture-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));aspect-ratio:1;gap:3px;overflow:hidden;border-radius:16px;background:#fff8fb}
.ng-picture-tile{min-width:0;width:100%;height:100%;border:2px solid transparent;background-size:300% 300%;background-position:var(--ng-x) var(--ng-y);background-repeat:no-repeat;transition:border .15s,filter .15s}
.ng-picture-tile:hover{filter:brightness(1.05)}
.ng-picture-tile.chosen{border:4px solid #f6f1ff;outline:2px solid #b97eaa;outline-offset:-4px;z-index:1;filter:brightness(1.1)}
.ng-picture-preview{display:flex;align-items:center;gap:15px;margin:20px 0;color:#7d6584;font-size:.86rem}
.ng-picture-preview img{height:105px;aspect-ratio:1;object-fit:cover;border-radius:12px;border:3px solid #fff;box-shadow:0 3px 10px #57394b1b}
.ng-sol-guide{font-size:.85rem;line-height:1.5;color:#806c89;margin-bottom:16px}
.ng-sol-board{--ng-card-w:clamp(41px,7.5vw,68px);--ng-card-h:calc(var(--ng-card-w)*1.44);--ng-sol-step:24px;background:linear-gradient(150deg,#b8c6ba,#d9ded0 58%,#dfd7df);padding:clamp(9px,2vw,20px);border:1px solid #c5cbbf;border-radius:20px;max-width:850px}
.ng-sol-top{display:flex;gap:clamp(5px,1.2vw,12px);align-items:start;justify-content:start;margin-bottom:18px}
.ng-sol-spacer{flex:1;min-width:1px}
.ng-foundations{display:flex;gap:clamp(4px,1vw,9px)}
.ng-foundations>div,.ng-sol-top>div:not(.ng-foundations):not(.ng-sol-spacer){width:var(--ng-card-w);flex:0 0 auto}
.ng-sol-label{display:block;text-align:center;font-size:clamp(.55rem,1vw,.7rem);height:25px;color:#48534d;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ng-playing-card{width:var(--ng-card-w);height:var(--ng-card-h);border-radius:8px;border:1px solid #c8b6c4;background:linear-gradient(145deg,#fffefc,#f8f0eb);color:#382f40;box-shadow:0 2px 5px #3b3b3b24;position:relative;display:block;padding:4px;text-align:left;overflow:hidden;transition:transform .12s,border-color .12s}
.ng-playing-card:hover:not(:disabled){transform:translateY(-2px)}
.ng-face-red{color:#ae5975}.ng-face-dark{color:#524c6b}
.ng-card-corner{display:block;font-weight:800;font-size:clamp(11px,1.5vw,16px);line-height:1.1}
.ng-card-centre{display:grid;place-items:center;position:absolute;inset:20% 0 5%;font-size:clamp(15px,3vw,30px)}
.ng-face-down{background:repeating-linear-gradient(45deg,#c6a5c5 0 5px,#e8d2e5 5px 10px);border:3px solid #fffcf9;color:#775a88}
.ng-sol-empty{display:grid;place-items:center;background:#e7ebe1a6;border:2px dashed #9fab99;color:#98a59b;font-size:22px}
.ng-sol-tableau{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,1.1vw,12px);padding:10px 0 0}
.ng-sol-column{min-width:0}
.ng-sol-column-body{min-height:calc(var(--ng-card-h) + (var(--ng-cards) - 1)*var(--ng-sol-step));position:relative}
.ng-sol-column-body>.ng-playing-card{position:absolute;left:0;z-index:1}
.ng-sol-column-body>.ng-playing-card:hover{z-index:4}
.ng-playing-card.ng-picked{border:3px solid #ab759f;outline:2px solid white;outline-offset:-4px;box-shadow:0 0 0 3px #ad80ac69;z-index:3}
.ng-done{text-align:center;padding:34px 15px;color:#785783}
.ng-done-emblem{font-size:70px;line-height:1;color:#bb85b2;margin:12px}
.ng-done h3{font-family:Georgia,'Times New Roman',serif;font-size:1.85rem;font-weight:500;margin:4px 0 12px}
.ng-done p{color:#806c87;line-height:1.6;max-width:450px;margin:0 auto 20px}
@media(max-width:650px){.ng-calm-head{border-radius:20px 20px 0 0}.ng-meadow{border-radius:0 0 20px 20px}.ng-game-grid{grid-template-columns:1fr;gap:10px}.ng-game-card{min-height:114px;padding:12px;grid-template-columns:56px minmax(0,1fr) 18px}.ng-game-card .ng-card-badge{width:52px;height:54px;font-size:27px}.ng-game-card strong{font-size:1rem}.ng-game-summary{font-size:.85rem}.ng-game-card small{font-size:.7rem}.ng-stage{padding:15px;border-radius:18px}.ng-play-head{flex-direction:column;align-items:flex-start}.ng-memory-board{gap:7px}.ng-memory-card{border-radius:11px}.ng-memory-card .ng-memory-front{font-size:27px}.ng-mahjong-board{gap:4px;padding:7px}.ng-mahjong-tile{border-radius:6px;border-width:1px;border-bottom-width:3px;font-size:22px}.ng-sol-board{--ng-card-w:clamp(37px,10vw,48px);--ng-sol-step:19px;padding:8px}.ng-sol-top{gap:4px}.ng-sol-tableau{gap:3px}.ng-sol-label{font-size:.55rem;height:23px}.ng-playing-card{border-radius:5px;padding:2px}.ng-card-corner{font-size:10px}.ng-card-centre{font-size:18px}.ng-sol-guide{font-size:.78rem}.ng-actions{gap:8px}.ng-primary,.ng-secondary{font-size:.84rem!important;min-height:40px;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){.ng-calm *, .ng-calm *::before,.ng-calm *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
