/* Shared creator identity, compact links and editorial portfolio. */
/* Original font families, self-hosted without the CSS -> Google CSS -> font chain. */
@font-face{font-family:'IBM Plex Sans Thai';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ibm-plex-sans-thai-400-v1.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans Thai';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/ibm-plex-sans-thai-500-v1.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans Thai';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/ibm-plex-sans-thai-600-v1.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans Thai';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/ibm-plex-sans-thai-700-v1.woff2') format('woff2')}
@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/outfit-400-v1.woff2') format('woff2')}
@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/outfit-500-v1.woff2') format('woff2')}
@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/outfit-600-v1.woff2') format('woff2')}
@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/outfit-700-v1.woff2') format('woff2')}
@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/outfit-800-v1.woff2') format('woff2')}

[hidden]{display:none!important}
.profile-extra-lines{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 16px;margin:8px 20px 0;max-width:100%;font-size:12px;line-height:1.6}
.profile-note{white-space:pre-line}.profile-note:empty{display:none}
.profile-extra-line{display:inline-flex;align-items:center;gap:6px;max-width:100%;overflow-wrap:anywhere;color:var(--muted);font-weight:400;font-style:normal}
a.profile-extra-line{display:inline-flex;align-items:center;gap:6px;min-height:44px;text-decoration:none}
a.profile-extra-line:hover,a.profile-extra-line:focus-visible{text-decoration:none;color:var(--blue)}
.profile-contact-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;color:var(--blue)}
.profile-contact-icon img,.profile-contact-icon svg{width:18px;height:18px;object-fit:contain}
.profile-contact-icon svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.profile-extra-line.is-bold{font-weight:700}.profile-extra-line.is-italic{font-style:italic}
.redeem-details{margin:4px 0 0;font-size:12px;min-width:0}
.redeem-details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--blue);font-weight:600}
.redeem-details>summary::before{content:"+"}.redeem-details[open]>summary::before{content:"−"}
.redeem-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;background:#ffffffa6;border:1px solid var(--line);border-radius:12px;margin-bottom:6px}
.redeem-info{display:grid;gap:2px;flex:1 1 120px;min-width:0}.redeem-info code{overflow-wrap:anywhere;font-size:13px;font-weight:600;user-select:all}.redeem-info small{overflow-wrap:anywhere}
.redeem-copy,.redeem-open{font:inherit;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--blue);cursor:pointer;text-decoration:none}
.redeem-copy:disabled{opacity:.6}.redeem-status{display:block;min-height:1.5em;color:var(--blue)}
.signature{display:none!important}
.site-credit{text-align:center;margin-top:8px;padding-top:17px;color:#62677d;font-size:11px;font-weight:400;line-height:1.7}
.site-credit p{margin:0}.site-credit a{position:relative;display:inline;color:#4c5680;text-decoration:underline;text-underline-offset:3px}.site-credit a::after{content:"";position:absolute;inset:50% 0 auto;height:44px;transform:translateY(-50%)}
.language-control{position:relative;display:inline-grid;place-items:center;flex-shrink:0;min-width:52px;height:44px;border:1px solid var(--line);border-radius:10px;background:#ffffffc9;color:var(--ink);font-size:12px;font-weight:600;letter-spacing:0;cursor:pointer}
.language-control select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font:inherit}
.language-control:focus-within{outline:2px solid var(--blue);outline-offset:3px}
.brand-line .language-control{background:#17193680;border-color:#ffffff50;color:white}
.brand-line>span{margin-left:auto}
.work-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
:lang(zh-Hans){font-family:Outfit,"Microsoft YaHei","PingFang SC",sans-serif}
.business-contacts{margin-top:12px;text-align:left;background:#fff;border:1px solid #e0e4ef;border-radius:14px;padding:0 12px}
.business-contact-row{display:flex;align-items:center;gap:10px;min-height:72px;padding:8px 0}
.business-contact-row+.business-contact-row{border-top:1px solid #edf0f6}
.business-icon{width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;border-radius:9px}
.business-icon img{object-fit:contain}.business-icon-email{background:#eef0ff;color:#4655df}.business-icon-discord{background:#5865f2}
.business-icon svg{width:20px;height:20px}
.business-contact-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:44px}
.business-contact-info span{font-size:11px;color:#62677d}
.business-contact-info strong{font-size:14px;font-weight:500;color:#20233a;overflow-wrap:anywhere;user-select:all}
.business-contacts button{font:inherit;font-size:11px;min-width:48px;min-height:44px;padding:0 4px;border:0;border-radius:8px;background:transparent;color:#4655c4;cursor:pointer}
.business-contacts button:hover{background:#f0f2fc}.business-contacts button:focus-visible{outline:2px solid #304bc2;outline-offset:2px}
.contact-copy-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.work-hero .business-contacts{margin-top:24px}
@media(max-width:360px){.business-contacts{padding:0 9px}.business-contact-row{gap:8px}.business-contact-info strong{font-size:12px}}
.arrow,.brand-spark,.footer-contact-arrow{display:none!important}
.managed-footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px}
.managed-footer-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:12px;text-decoration:none}
.managed-footer-links a:first-child{color:var(--ink);font-weight:700}
.game-card.is-featured{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.card-badge{display:block;color:var(--blue);font-size:10px;font-weight:600}
.card-tone-gold{border-left-color:#d7b566}.card-tone-green{border-left-color:#80b9a8}.card-tone-violet{border-left-color:#baa1df}.card-tone-red{border-left-color:#e9aaa5}.card-tone-pink{border-left-color:#eab3d0}
.section-emote img,.business-emote img{width:100%;height:100%;object-fit:contain}
:root{color-scheme:light;--ink:#20233a;--muted:#62677d;--blue:#3e52d9;--line:#e0e3ee;--surface:#fff;--ease:cubic-bezier(.2,.75,.25,1);font-family:Outfit,"IBM Plex Sans Thai",sans-serif;color:var(--ink);background:#f1f3fa}
*{box-sizing:border-box}body{margin:0;line-height:1.55;min-height:100dvh;background:radial-gradient(ellipse at 15% 0,#e1e8fb,transparent 48%),#f1f3fa}a{color:inherit;text-decoration:none;touch-action:manipulation;transition:transform .22s var(--ease),background .22s,border-color .22s,box-shadow .22s}a:focus-visible{outline:3px solid var(--blue);outline-offset:4px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1{font-size:40px;letter-spacing:-1px;line-height:1.2}h2{font-size:22px;line-height:1.4;letter-spacing:-.4px}h3{font-size:18px;line-height:1.45}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6}
.creator-shell{width:min(calc(100% - 40px),680px);margin:auto;padding:32px 0 max(32px,env(safe-area-inset-bottom));display:grid;gap:28px}.creator-shell>*{min-width:0}.identity{background:white;border:1px solid var(--line);border-radius:24px;overflow:hidden;text-align:center;box-shadow:0 12px 40px #2429570a;padding-bottom:24px;animation:arrive .4s var(--ease) both}.cover{position:relative;height:176px;background:#191536;color:white;isolation:isolate;overflow:hidden}.cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;z-index:-2}.cover:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#100e3270,transparent 55%,#100e3250)}.brand-line{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;gap:12px}.brand-line a{display:flex;align-items:center;min-height:44px;gap:8px;font-size:12px;font-weight:800;letter-spacing:1.4px}.brand-spark{font-size:22px;color:#cbd2ff}.brand-line>span{font-size:10px;letter-spacing:1.2px}.cover-label{position:absolute;left:20px;bottom:20px;font-size:9px;letter-spacing:2px;font-weight:600;max-width:110px;text-align:left;line-height:1.8}
.profile-row{display:flex;align-items:center;gap:16px}.identity .profile-row{position:relative;flex-direction:column;gap:8px;margin-top:-36px;padding:0 16px}.avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;box-shadow:0 5px 15px #20233a16;border:5px solid white;flex-shrink:0}.identity h1{font-size:36px}.eyebrow{font-size:10px;letter-spacing:1.2px;font-weight:700;color:var(--blue);display:block;margin-bottom:5px}.identity .eyebrow{margin:0 0 5px}.verified{display:inline-grid;place-items:center;font-size:11px;background:var(--blue);color:white;width:18px;height:18px;border-radius:50%;vertical-align:middle;margin-left:8px;letter-spacing:0}.intro{font-size:13px;color:var(--muted);margin-top:7px}.profile-note{font-size:14px;color:var(--muted);margin:12px 20px 0}.small-only{display:none}.social-row{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:18px 16px 0}.social-row a{display:flex;align-items:center;justify-content:center;padding:8px 16px;min-height:44px;border:1px solid var(--line);background:#f6f7fc;border-radius:10px;font-size:13px;font-weight:600}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px}.section-caption{color:var(--muted);font-size:12px;flex-shrink:0}.campaign-list{display:grid;gap:10px}.game-card{position:relative;isolation:isolate;display:flex;align-items:center;gap:14px;padding:14px 16px;min-height:82px;border:1px solid var(--line);border-radius:18px;background:white;overflow:hidden;box-shadow:0 3px 10px #25365305;animation:arrive .35s var(--ease) both}.game-card:nth-child(2){animation-delay:35ms}.game-card:nth-child(3){animation-delay:70ms}.game-card:nth-child(4){animation-delay:105ms}.game-card:nth-child(5){animation-delay:140ms}.game-logo{width:46px;height:46px;border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:0 0 0 3px white,0 2px 8px #20233a15}.card-copy{display:grid;gap:4px;min-width:0;flex:1}.card-copy strong{font-size:16px;line-height:1.35;overflow-wrap:anywhere}.card-copy small{font-size:12px;color:#596178;overflow-wrap:anywhere}.arrow{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f0f2fb;color:var(--blue);font-size:20px;flex-shrink:0;transition:transform .22s var(--ease),background .22s}.card-art{position:absolute;z-index:-1;inset:0 0 0 auto;width:52%;height:100%;object-fit:cover;opacity:.3;mask-image:linear-gradient(90deg,transparent,#000);transition:transform .3s var(--ease),opacity .3s}.quiet-note{font-size:11px;color:var(--muted);margin:10px 2px 0}
.work-card{display:flex;align-items:center;gap:14px;padding:22px 20px;border-radius:18px;background:linear-gradient(115deg,#262e68,#444998);color:white;box-shadow:0 8px 20px #303a7220}.work-card>span:nth-child(2){flex:1;min-width:0}.work-card .eyebrow{color:#cdd5ff;font-size:9px}.work-card strong{display:block;font-size:19px}.work-card small{display:block;font-size:12px;color:#e0e3fc;margin-top:3px}.work-card .arrow{background:#ffffff18;color:white}.work-icon{display:grid;place-items:center;width:44px;height:44px;background:#ffffff15;border:1px solid #ffffff25;border-radius:12px;flex-shrink:0}.channel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.channel-card{display:flex;align-items:center;justify-content:space-between;gap:8px;background:white;border:1px solid var(--line);border-radius:12px;padding:14px;min-height:56px;font-size:13px}.channel-card strong{font-weight:500;overflow-wrap:anywhere}.contact-footer{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 20px}.contact-footer>p{width:100%;font-size:12px;color:var(--muted)}.contact-footer>a{display:flex;align-items:center;min-height:44px;font-size:13px}.signature{width:100%;display:flex;justify-content:space-between;gap:12px;margin-top:16px;font-weight:700;font-size:12px}.signature span{font-weight:400;color:var(--muted)}.skip{position:fixed;z-index:10;top:8px;left:8px;background:white;padding:12px;transform:translateY(-160%)}.skip:focus{transform:none}
.back-link{min-height:44px;display:inline-flex;align-items:center;gap:10px;color:var(--blue);font-size:14px}.work-hero{position:relative;isolation:isolate;padding:32px;border-radius:24px;overflow:hidden;color:white;background:#1e204b;animation:arrive .4s var(--ease) both}.work-hero:before{content:"";position:absolute;inset:0;z-index:-2;background:url('/assets/geargumi-hero.webp') 70% center/cover}.work-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#161936f5 15%,#181a3dda 55%,#17183970)}.work-hero .avatar{width:56px;height:56px;border-width:3px}.work-hero .eyebrow{color:#c7d1ff}.work-hero .profile-row strong{font-size:13px;font-weight:500}.work-hero h1{font-size:clamp(28px,5vw,42px);margin:24px 0 16px;line-height:1.35;letter-spacing:-.5px}.work-hero p{color:#e1e3f3;font-size:14px;max-width:48ch}.contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.contact-actions a{min-height:48px;display:flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:10px;border:1px solid var(--line);background:white;font-size:14px;color:var(--ink);font-weight:600}.contact-actions .primary{background:var(--blue);color:white;border-color:var(--blue)}.work-hero .contact-actions .primary{background:white;border-color:white;color:#2f3cad}.work-hero .contact-actions a:not(.primary){color:white;border-color:#ffffff60;background:#ffffff0c}.section-description{color:var(--muted);font-size:14px;margin-top:7px}.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.portfolio-item{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.portfolio-item>img{width:100%;height:160px;object-fit:cover;object-position:center 35%;transition:transform .35s var(--ease)}.portfolio-copy{position:relative;background:white;padding:20px}.portfolio-copy .eyebrow{font-size:9px;letter-spacing:.6px}.portfolio-copy h3{margin-bottom:8px;font-size:17px}.portfolio-copy p{font-size:13px;color:var(--muted)}.partner-wordmark{height:160px;display:grid;place-items:center;font-size:36px;font-weight:700;letter-spacing:2px;color:#f0fff7;background:linear-gradient(125deg,#173f34,#368b64)}.steps{list-style:none;margin:20px 0 0;padding:0;display:grid;background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.steps li{display:flex;gap:16px;padding:20px;border-bottom:1px solid var(--line)}.steps li:last-child{border-bottom:0}.step-number{color:var(--blue);font-size:13px;font-weight:700;background:#edf0ff;border-radius:12px;width:40px;height:40px;display:grid;place-items:center;flex-shrink:0}.steps p{color:var(--muted);font-size:14px;margin-top:5px}.brief-box{padding:28px;background:#e7ebfa;border:1px solid #d4dbf2;border-radius:18px}.brief-box p{margin-top:10px;font-size:14px;color:#515b78}
a:active{transform:scale(.98)}@media(hover:hover){.game-card:hover{transform:translateY(-3px);border-color:#b7bfea;box-shadow:0 10px 24px #323c7014}.game-card:hover .arrow{background:#dfe5ff;transform:rotate(8deg)}.game-card:hover .card-art{opacity:.45;transform:scale(1.04)}.work-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px #303a7230}.social-row a:hover,.channel-card:hover{background:#e9edff;border-color:#b4beed}.contact-actions a:hover{transform:translateY(-2px);box-shadow:0 5px 14px #20233a20}}
.identity,.game-card,.work-hero{animation-fill-mode:backwards}
:root{font-family:Outfit,"IBM Plex Sans Thai",sans-serif;font-synthesis:none}h1,h2,h3{font-weight:700;letter-spacing:0}.brand-line a{font-weight:700}.social-row a,.contact-actions a{font-weight:700}.channel-card strong{font-weight:400}
.section-emote{width:64px;height:64px;object-fit:contain;flex-shrink:0;pointer-events:none}.business-emote{width:64px;height:64px;object-fit:contain;flex-shrink:0;pointer-events:none}.section-heading:has(.section-emote){align-items:center;margin-bottom:10px}.cover>img{object-position:center 45%}.cover-label{max-width:none;letter-spacing:1px}.brand-line>span{letter-spacing:0}.eyebrow{letter-spacing:.5px}.work-hero:before{background-image:url('/assets/genshin-cover.webp')}.work-hero:after{background:linear-gradient(90deg,#161936f5 15%,#181a3de8 55%,#171839a0)}
@media(max-width:380px){.business-emote{width:48px;height:48px}.section-emote{width:56px;height:56px}.work-card{gap:8px}.work-card strong{font-size:16px}}
@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@view-transition{navigation:auto}::view-transition-old(root){animation:departure .15s ease both}::view-transition-new(root){animation:arrive .25s var(--ease) both}@keyframes departure{to{opacity:0}}
@media(min-width:1000px){.creator-page .creator-shell{width:min(calc(100% - 80px),1060px);grid-template-columns:380px minmax(0,1fr);gap:24px 40px;padding-top:56px;align-items:start}.creator-page .identity{grid-column:1;grid-row:1/5;position:sticky;top:32px}.creator-page .creator-shell>section,.creator-page .work-card,.creator-page .contact-footer{grid-column:2}.creator-page .cover{height:220px}.creator-page .profile-note{margin-top:20px}.creator-page .social-row{margin-top:24px}.creator-page .identity{padding-bottom:32px}body:not(.creator-page) .creator-shell{width:min(calc(100% - 80px),920px)}body:not(.creator-page) .work-hero{padding:44px}}
@media(max-width:480px){.creator-shell{width:calc(100% - 32px);padding-top:16px;gap:24px}.cover{height:142px}.identity{border-radius:20px;padding-bottom:20px}.identity .profile-row{margin-top:-30px;gap:6px}.identity .avatar{width:68px;height:68px}.identity h1{font-size:30px}.profile-note{font-size:13px;margin-top:10px}.social-row{margin-top:14px}.social-row a{padding:8px 12px}.intro{font-size:12px}.cover-label{bottom:14px}.brand-line{padding:4px 16px}.brand-line>span{font-size:9px}.section-heading h2{font-size:20px}.game-card{min-height:80px;padding:13px 14px;gap:12px}.card-copy strong{font-size:15px}.arrow{width:28px;height:28px;font-size:18px}.game-logo{width:42px;height:42px}.work-card{padding:18px 16px;gap:12px}.work-card strong{font-size:17px}.work-card .eyebrow{letter-spacing:.8px}.work-hero{padding:24px 20px}.work-hero h1{font-size:29px}.work-hero .profile-row{gap:12px}.work-hero .eyebrow{font-size:9px;letter-spacing:.7px}.portfolio-grid{gap:12px}.portfolio-item>img,.partner-wordmark{height:124px}.portfolio-copy{padding:14px}.portfolio-copy h3{font-size:15px}.portfolio-copy p{font-size:12px}.brief-box{padding:20px}.signature{flex-wrap:wrap}.section-caption{font-size:11px}}
@media(max-width:359px){.creator-shell{width:calc(100% - 24px)}.section-caption{display:none}.game-card{gap:10px;padding:12px}.card-copy strong{font-size:14px}.work-icon{display:none}.portfolio-grid{grid-template-columns:1fr}.contact-actions a{width:100%}.work-hero h1{font-size:26px}.brand-line{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}a:hover,a:active{transform:none!important}@view-transition{navigation:none}}
.work-card{min-height:104px;padding:20px;gap:14px;background:linear-gradient(115deg,#252b60,#3e468b);border-radius:18px;align-items:center}
.work-card>span:not(.arrow){min-width:0;flex:1}
.work-card strong{display:block;font-size:18px;line-height:1.35;font-weight:600;letter-spacing:0}
.work-card small{display:block;margin-top:1px;color:#e1e6ff;font-size:13px;line-height:1.5}
.work-card .business-emote{width:52px;height:52px;flex:0 0 52px;transform:scale(1.05)}
.work-card .arrow{width:36px;height:36px;background:#ffffff14;border:1px solid #ffffff24;color:white;font-size:20px}
@media(max-width:359px){.work-card{padding:16px 12px;gap:10px}.work-card strong{font-size:16px}.work-card .business-emote{width:42px;height:48px;flex-basis:42px}.work-card .arrow{width:30px;height:30px}}
/* Shared section hierarchy for featured links and collaboration. */
:is(#links,.collaboration-section)>.section-heading{position:relative;justify-content:space-between;align-items:center;gap:16px;min-height:80px;padding:0 4px 14px;margin-bottom:16px;border-bottom:1px solid #d9deef}
:is(#links,.collaboration-section)>.section-heading:after{content:"";position:absolute;bottom:-1px;left:4px;width:36px;height:3px;border-radius:3px;background:var(--blue)}
:is(#links,.collaboration-section)>.section-heading h2{font-size:26px;font-weight:700;line-height:1.2;letter-spacing:-.6px}
:is(#links,.collaboration-section)>.section-heading .section-emote{display:grid;place-items:center;width:68px;height:68px;background:radial-gradient(ellipse,#e0e6ff 0%,#e8edfb80 45%,transparent 72%)}
:is(#links,.collaboration-section)>.section-heading .eyebrow{font-size:10px;line-height:1.5;font-weight:500;letter-spacing:1.2px;color:#656d86;margin-bottom:6px}
@media(max-width:380px){:is(#links,.collaboration-section)>.section-heading h2{font-size:24px}:is(#links,.collaboration-section)>.section-heading .section-emote{width:60px;height:60px}}
.collaboration-section .steps{margin-top:0}
/* Group collaborations by actual publisher/partner, not a flat logo wall. */
.portfolio-intro{padding:20px;border:1px solid #dbe1f2;border-radius:18px;background:linear-gradient(120deg,#fff,#edf1ff)}
.portfolio-intro-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.portfolio-count{font-size:11px;font-weight:500;color:#596176}
.portfolio-intro h2{font-size:24px;line-height:1.25}
.portfolio-intro .section-description{font-size:13px;line-height:1.6}
.portfolio-jumps{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.portfolio-jumps a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid #dce2f4;background:#fff;border-radius:10px;font-size:12px;font-weight:500;color:#404b70}
.portfolio-jumps a:hover{background:#e6ecff;border-color:#b4c2f4}
.portfolio-group{margin-top:24px;scroll-margin-top:24px}
.portfolio-group.portfolio-accordion{margin-top:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.portfolio-accordion .portfolio-group-heading{display:block;padding:0 16px 14px;margin:0;border:0}
.portfolio-accordion .portfolio-group-heading h3{font-size:17px}
.portfolio-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:60px;padding:12px 0;border:0;background:transparent;color:var(--ink);font:inherit;font-weight:600;text-align:left;cursor:pointer;scroll-margin-top:24px}
.portfolio-toggle>span:first-child{flex:1}
.portfolio-sector-count{font-size:11px;font-weight:400;color:var(--muted);white-space:nowrap}
.portfolio-toggle-action{min-width:38px;font-size:12px;font-weight:500;color:var(--blue);text-align:right}
.portfolio-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
.portfolio-accordion.is-open .portfolio-group-heading{border-bottom:1px solid var(--line)}
.portfolio-accordion .portfolio-entries{padding:14px;background:#f7f8fc}
@media(prefers-reduced-motion:no-preference){.portfolio-accordion.is-open .portfolio-entries{animation:arrive .2s ease-out}}
.portfolio-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.portfolio-group-heading h3{font-size:21px;letter-spacing:-.3px}
.portfolio-group-heading p{font-size:12px;color:var(--muted)}
.portfolio-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.portfolio-entry{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}
.portfolio-visual{background:#edf0f7;overflow:hidden;display:grid;place-items:center;border-bottom:1px solid var(--line)}
.portfolio-visual img{width:100%;height:auto;object-fit:contain;object-position:center}
.portfolio-entry-wuwa .portfolio-visual{position:relative;aspect-ratio:16/9}
.portfolio-entry-wuwa .portfolio-visual>img:first-child{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.portfolio-entry-wuwa .portfolio-visual .portfolio-partner-badge{position:absolute;right:12px;bottom:12px;width:48px;height:48px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px}
.portfolio-entry-copy{padding:16px}
.portfolio-entry-copy h4{margin:0 0 6px;font-size:17px;line-height:1.3}
.portfolio-entry-copy p{font-size:13px;line-height:1.65;color:#596176}
.portfolio-entry-copy a{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:8px;font-size:12px;font-weight:500;color:var(--blue)}
.portfolio-entry-logo{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;padding:18px;gap:18px}
.portfolio-entry-logo .portfolio-visual{width:112px;height:88px;aspect-ratio:auto;background:#fff;border:1px solid #e8ebf3;border-radius:12px;padding:12px}
.portfolio-entry-logo .portfolio-visual img{width:100%;height:100%;object-fit:contain;max-width:100%;max-height:100%}
.portfolio-entry-logo .portfolio-visual:has(img[src*="ack"]),.portfolio-entry-logo .portfolio-visual:has(img[src*="golden"]),.portfolio-entry-logo .portfolio-visual:has(img[src*="vibemax"]),.portfolio-entry-logo .portfolio-visual:has(img[src*="tofu"]){padding:8px}
.portfolio-entry-logo .portfolio-visual:has(img[src*="cleverpay"]),.portfolio-entry-logo .portfolio-visual:has(img[src*="codashop"]){background:#25213d}
.portfolio-entry-logo .portfolio-entry-copy{padding:0;min-width:0}
.portfolio-entry-logo .portfolio-visual:has(img[src*="vibemax-mark"]){background:#25213d;padding:10px}
.portfolio-disclaimer{font-size:12px;line-height:1.7;color:var(--muted);margin-top:24px}
@media(max-width:560px){.portfolio-entries{grid-template-columns:1fr}.portfolio-entry:not(.portfolio-entry-logo){display:block}.portfolio-entry-copy{padding:16px}.portfolio-entry-copy h4{font-size:17px}.portfolio-group-heading{display:block}.portfolio-group-heading p{margin-top:4px}.portfolio-entry-logo{grid-template-columns:96px minmax(0,1fr);padding:16px;gap:14px}.portfolio-entry-logo .portfolio-visual{width:96px;height:80px;padding:10px}}
@media(max-width:359px){.portfolio-entry-logo{grid-template-columns:80px minmax(0,1fr);padding:12px;gap:12px}.portfolio-entry-logo .portfolio-visual{width:80px;height:72px}}
/* Collaboration flow: highlights are decorative, not actual project status. */
.steps li{position:relative;isolation:isolate;transition:background .35s ease}
.steps li:not(:last-child):after{content:"";position:absolute;left:39px;top:60px;bottom:-20px;width:2px;background:#e2e7f7;z-index:-1}
.steps .step-number{position:relative;transition:background .35s ease,color .35s ease,box-shadow .35s ease}
.steps li.flow-active{background:#f2f5ff}
.steps li.flow-active .step-number{background:var(--blue);color:white;box-shadow:0 0 0 5px #3e52d90c}
.steps li.flow-active:not(:last-child):after{background:linear-gradient(#8798ed,#e2e7f7)}
.flow-toggle{display:block;margin:8px 0 0 auto;min-height:44px;padding:8px 12px;background:transparent;border:0;border-radius:10px;color:var(--muted);font:inherit;font-size:12px;cursor:pointer}
.flow-toggle:hover{background:#e8ecf8;color:var(--blue)}
.flow-toggle:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.flow-toggle[hidden]{display:none}
/* A quiet but clearly tappable return action. */
.back-link{padding:10px 16px 10px 12px;border:1px solid #dce1ef;border-radius:999px;background:#ffffffd9;box-shadow:0 2px 6px #20233a04;color:#404b70;font-weight:500;line-height:1.5}
.back-link svg{width:18px;height:18px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.back-link:hover{background:#fff;border-color:#aab8ee;box-shadow:0 4px 12px #20233a09}
.back-link:active{background:#e9edfb}
/* Swipeable app shortcuts: native scrolling, no autoplay. */
.creator-shell>section{min-width:0}
.channel-list{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding:4px;padding:6px 4px 12px;scrollbar-width:thin;scrollbar-color:#c5cbea transparent}
.channel-list{scrollbar-width:none;-ms-overflow-style:none}
.channel-list::-webkit-scrollbar{display:none;width:0;height:0}
.channel-orb{flex:0 0 76px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:4px 0;scroll-snap-align:start;border-radius:12px}
.channel-icon{width:60px;height:60px;display:grid;place-items:center;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 4px 12px #20233a06;transition:transform .18s ease,box-shadow .18s ease}
.channel-icon svg{width:34px;height:34px;stroke-width:1.8}
.channel-icon .channel-brand-image{width:32px;height:32px;object-fit:contain}
.channel-icon-website .channel-brand-image{width:40px;height:40px;border-radius:50%}
.channel-icon.channel-icon-discord{background:#5865f2}
.channel-icon.channel-icon-tiktok{background:#fff}
.channel-name{font-size:13px;font-weight:500;line-height:1.4;text-align:center}
.channel-icon-youtube{color:#d92d31;background:#fff0f0}.channel-icon-tiktok{color:#20233a;background:#e9ecf4}.channel-icon-discord{color:#5865f2;background:#eeedff}.channel-icon-facebook{color:#1877f2;background:#eaf2ff}.channel-icon-website{color:#3e52d9;background:#eef1ff}.channel-icon-tipme{color:#9b6500;background:#fff5d9}
.channel-orb:hover .channel-icon{transform:translateY(-2px);box-shadow:0 6px 16px #20233a12}
.channel-controls{display:flex;gap:8px}.channel-controls[hidden]{display:none}
.channel-controls button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#ffffffb3;color:var(--ink);font:inherit;cursor:pointer}
.channel-controls button:disabled{opacity:.35;cursor:default}
/* Compact contact footer; consistent centered brand sign-off on both pages. */
.contact-footer{display:grid;gap:24px;padding-top:24px}
.footer-contact h2{margin:0 0 12px;font-size:17px;line-height:1.4;letter-spacing:-.2px}
.footer-links{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px}
.footer-links a{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#ffffffb3;font-size:13px;font-weight:500}
.footer-links a:hover{background:#fff;border-color:#aeb8ee}
.footer-links a span:last-child{color:var(--blue)}
.footer-links a{gap:10px;padding:10px 12px}
.footer-contact-icon{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:7px;background:#edf1ff;color:var(--blue);overflow:hidden}
.footer-contact-icon svg{width:19px;height:19px;stroke-width:1.7}
.footer-contact-icon img{width:28px;height:28px;object-fit:contain}
.footer-contact-label{flex:1;min-width:0;overflow-wrap:anywhere}
.footer-contact-arrow{flex:0 0 auto;font-size:14px}
@media(min-width:421px) and (max-width:560px){.footer-links{grid-template-columns:1fr}}
.signature{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;padding:4px 0 0;text-align:center;font-size:15px}
.signature span{font-size:12px;line-height:1.6}
footer.signature{border-top:1px solid var(--line);padding-top:24px}
@media(max-width:420px){.footer-links{grid-template-columns:1fr}.contact-footer{gap:20px}.footer-links a{font-size:14px}}
/* Original Outfit / IBM Plex Sans Thai pairing, with readable secondary text. */
.card-copy small,.work-card small{font-size:13px;line-height:1.55}.card-copy small{color:#4f586d}.profile-note{font-size:14px;color:#535c70}.portfolio-copy p{font-size:14px;line-height:1.65}.portfolio-copy .eyebrow{font-size:10px}.quiet-note{font-size:12px;color:#596176}
.game-card-shell{position:relative;min-width:0;animation:arrive .35s var(--ease) both}
.game-card-shell:nth-child(2){animation-delay:35ms}.game-card-shell:nth-child(3){animation-delay:70ms}.game-card-shell:nth-child(4){animation-delay:105ms}.game-card-shell:nth-child(5){animation-delay:140ms}
.game-card-shell .game-card{animation:none}
.campaign-open-hint{margin:-6px 0 12px;color:#4f586d;font-size:12px;line-height:1.6}
.scene-page .campaign-open-hint{color:#eef2ff;text-shadow:0 1px 3px #14233999}
.game-card[data-rotation-state="loading"]{cursor:wait}
.game-card[data-rotation-state="error"]{cursor:pointer}
.game-card .card-copy{flex:1;min-width:0}
.game-card{-webkit-touch-callout:default}
.card-copy-fallback{display:flex;justify-content:flex-end;margin-top:6px;animation:copyAssistIn .24s var(--ease) both}
.card-copy-fallback.is-closing{animation:copyAssistOut .18s ease-in both;pointer-events:none}
.card-copy-fallback[hidden]{display:none}
.copy-campaign-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid #cdd6efad;border-radius:999px;background:#ffffffb8;color:#344481;box-shadow:0 2px 10px #20233a0a,inset 0 1px #fff8;font:inherit;font-size:12px;font-weight:650;cursor:pointer;touch-action:manipulation;transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.copy-campaign-link svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.copy-campaign-link:hover{background:#ffffffed;border-color:#a8b4ed;transform:translateY(-1px)}.copy-campaign-link:active{background:#e9edff;transform:none}.copy-campaign-link:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.copy-campaign-link[data-copy-state="copied"]{background:#e8f7efd9;border-color:#9ed8b6;color:#16734a}
.game-card-shell .game-card:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.game-card-shell .game-card:hover .card-open-cue,.game-card-shell .game-card:focus-visible .card-open-cue{background:#fff;transform:translateX(2px)}
@supports (backdrop-filter:blur(8px)){.card-open-cue,.copy-campaign-link{backdrop-filter:blur(8px) saturate(1.1)}}
@keyframes copyAssistIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@keyframes copyAssistOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}
.copy-campaign-feedback{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(hover:hover){.game-card-shell:hover .game-card{border-color:#b7bfea;box-shadow:0 10px 24px #323c7014}.game-card-shell:hover .card-art{opacity:.45;transform:scale(1.04)}}
@media(max-width:480px){.card-open-cue{min-width:47px;padding:0 7px}}
@media(forced-colors:active){.copy-campaign-link,.card-open-cue{border:1px solid ButtonText}}
@media(forced-colors:active){.game-card,.work-card,.channel-card,.identity,.work-hero{border:1px solid CanvasText}}

/* Identity hierarchy: name, follow actions, then quiet contact details. */
.creator-page .identity{padding-bottom:16px}
.creator-page .identity .social-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;width:calc(100% - 40px);max-width:332px;margin:16px auto 0}
.creator-page .identity .social-row a{padding:8px 4px;font-size:12px;min-width:0;text-align:center}
.creator-page .identity .profile-extra-lines{max-width:332px;margin:8px auto 0;padding:0 12px}
.creator-page .identity .profile-extra-line{color:var(--muted)}
.creator-page .identity a.profile-extra-line:hover,.creator-page .identity a.profile-extra-line:focus-visible{color:var(--ink)}
@media(max-width:360px){.creator-page .identity .profile-extra-lines{flex-direction:column;gap:0}.creator-page .identity .social-row{width:calc(100% - 32px)}}

/* Compact contact CTA: one link, quiet surface and one directional cue. */
.creator-page .work-card{min-height:84px;padding:15px 18px;gap:14px;border:1px solid #e0dff0;border-radius:16px;background:#faf9ff;color:var(--ink);box-shadow:0 4px 16px #10152a12;text-decoration:none;touch-action:manipulation;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;transform:none}
.creator-page .work-card .business-emote{width:52px;height:52px;flex:0 0 52px;transform:none;display:grid;place-items:center}
.creator-page .work-card .business-emote img{display:block;width:100%;height:100%;object-fit:contain}
.creator-page .work-card-copy{display:grid;gap:4px;min-width:0;flex:1}
.creator-page .work-card strong{font-size:18px;line-height:1.3;font-weight:650}
.creator-page .work-card small{margin:0;font-size:13px;line-height:1.45;color:#5a6074}
.creator-page .work-card>.work-card-cue{display:grid;place-items:center;width:36px;height:36px;min-width:36px;flex:0 0 36px;border-radius:11px;background:#eeecfb;color:#5147a0}
.work-card-cue svg{width:20px;height:20px;transition:transform .18s ease}
@media(hover:hover){.creator-page .work-card:hover{background:#fff;border-color:#b7b1df;box-shadow:0 6px 20px #10152a1a;transform:none}.work-card:hover .work-card-cue svg{transform:translateX(3px)}}
.creator-page .work-card:active{background:#eeebfa;transform:none}
.creator-page .work-card:focus-visible{outline:3px solid #a6a0ef;outline-offset:4px}
@media(max-width:480px){.creator-page .work-card{padding:14px;gap:12px}.creator-page .work-card strong{font-size:17px}.creator-page .work-card .business-emote{width:48px;height:48px;flex-basis:48px}}
@media(max-width:359px){.creator-page .work-card{padding:14px 12px;gap:10px}.creator-page .work-card>.work-card-cue{width:30px;height:32px;min-width:30px;flex-basis:30px}}
@media(prefers-reduced-motion:reduce){.creator-page .work-card,.work-card-cue svg{transition:none}.work-card:hover .work-card-cue svg{transform:none}}
@media(forced-colors:active){.creator-page .work-card{background:Canvas;color:LinkText;border-color:LinkText}.creator-page .work-card small{color:CanvasText}.creator-page .work-card>.work-card-cue{background:Canvas;color:LinkText}}

/* A shared, restrained motion language. No hidden content or scroll interception. */
:root{--motion-press:120ms;--motion-micro:180ms;--motion-ui:260ms;--motion-reveal:520ms;--motion-atmosphere:700ms;--ease-smooth:cubic-bezier(.2,.7,.2,1);--ease-enter:cubic-bezier(.16,1,.3,1);--ease-exit:cubic-bezier(.4,0,1,1);--ease:var(--ease-smooth)}
.identity,.game-card,.game-card-shell,.work-hero{animation:none}
a,button,.channel-icon,.card-open-cue,.work-card-cue svg{transition-duration:var(--motion-micro);transition-timing-function:var(--ease-smooth)}
.card-art,.portfolio-visual img{transition:transform var(--motion-ui) var(--ease-enter),opacity var(--motion-ui) var(--ease-smooth)}
.idle-scene img,.idle-scene video{transition-duration:var(--motion-reveal);transition-timing-function:var(--ease-smooth)}
/* Press feedback only on controls, never on an entire text link or skip link. */
a:active{transform:none}
:is(.game-card,.channel-orb,.social-row a,.back-link,.redeem-copy,.redeem-open):active{transform:scale(.99);transition-duration:var(--motion-press)}
.card-open-cue,.copy-campaign-link{backdrop-filter:none}
.card-copy-fallback{animation:copyAssistIn var(--motion-ui) var(--ease-enter) both}
.card-copy-fallback.is-closing{animation:copyAssistOut var(--motion-micro) var(--ease-exit) both}
@keyframes identity-settle{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes visual-settle{from{transform:scale(1.015)}to{transform:scale(1)}}
@keyframes panel-reveal{from{opacity:.65}to{opacity:1}}
@keyframes section-rule{from{transform:scaleX(.35)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:no-preference){
  .identity .profile-row,.work-hero h1{animation:identity-settle var(--motion-reveal) var(--ease-enter) both}
  .identity .social-row,.work-hero>p{animation:panel-reveal var(--motion-reveal) var(--ease-smooth) 60ms backwards}
  .portfolio-accordion.is-open .portfolio-entries{animation:panel-reveal var(--motion-ui) var(--ease-enter)}
  ::view-transition-old(root){animation:departure var(--motion-press) var(--ease-exit) both}
  ::view-transition-new(root){animation:panel-reveal var(--motion-micro) var(--ease-enter) both}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .cover>img{animation:visual-settle var(--motion-atmosphere) var(--ease-enter) both}
  .game-card:hover{transform:translateY(-2px)}
  .game-card:hover .card-art,.game-card-shell:hover .card-art{transform:scale(1.02)}
  .portfolio-entry:hover .portfolio-visual>img:first-child{transform:scale(1.015)}
  @supports(animation-timeline:view()){
    :is(#links,.collaboration-section)>.section-heading:after{transform-origin:left;animation:section-rule linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
  }
}
@media(hover:none){.game-card:hover,.channel-orb:hover .channel-icon,.work-card:hover .work-card-cue svg{transform:none}.game-card:hover .card-art{transform:none;opacity:.3}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* Darkened idle backdrop, isolated from the unchanged white content cards. */
body.scene-page{background:#090e19;isolation:isolate}
.idle-scene{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#090e19;contain:strict}
.idle-scene img,.idle-scene video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;transition:opacity .35s ease}
.idle-scene img{object-position:62.5% center;opacity:1}
.idle-scene.is-ready img{opacity:1}
.idle-scene.is-playing video{opacity:1}
.idle-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0307129e,#030712bc 55%,#030712d6)}
.scene-page .section-heading h2,.scene-page .footer-contact>h2,.scene-page .channel-name{color:#f3f5ff}
.scene-page #links>.section-heading .eyebrow,.scene-page .quiet-note,.scene-page .site-credit,.scene-page .site-credit a{color:#c8cede}
.scene-page .contact-footer,.scene-page #links>.section-heading{border-color:#ffffff30}
.scene-page .redeem-details>summary,.scene-page .redeem-status{color:#d8dfff}
.scene-page .redeem-row{background:#f7f8fd}
.scene-loading{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#090e19f5;color:#e5e9f6;pointer-events:none}
.scene-loading>span{font-size:18px;letter-spacing:4px;font-weight:600}.scene-loading>small{font-size:12px;color:#aab4cc}
.scene-toggle{position:relative;margin:8px auto 0;width:44px;height:44px;display:grid;place-items:center;border:1px solid #ffffff38;border-radius:50%;background:#090e19cc;color:#e5e9f6;cursor:pointer}
.scene-toggle svg{width:18px;height:18px;stroke-width:2}.scene-toggle:focus-visible{outline:3px solid #b8c4ff;outline-offset:3px}
.scene-play-icon{display:none}.scene-toggle[aria-pressed="true"] .scene-play-icon{display:block}.scene-toggle[aria-pressed="true"] .scene-pause-icon{display:none}
@media(prefers-reduced-motion:reduce){.idle-scene img,.idle-scene video{transition:none}.idle-scene video,.scene-loading,.scene-toggle{display:none}}
@media(forced-colors:active){.idle-scene,.scene-toggle{display:none}body.scene-page{background:Canvas}.scene-page .section-heading h2,.scene-page .footer-contact>h2,.scene-page .channel-name,.scene-page .quiet-note,.scene-page .site-credit,.scene-page .site-credit a{color:CanvasText}}
