.filterbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}.filt{font-size:.9rem;font-weight:600;color:var(--paper-soft);border:1px solid var(--paper-line);background:#fff;padding:10px 18px;border-radius:999px;transition:.22s var(--ease)}.filt:hover{border-color:#bdbdc6;color:var(--paper-text)}.filt.on{background:var(--paper-text);color:#fff;border-color:var(--paper-text)}.filt .n{font-size:.78rem;opacity:.6;margin-left:.4em}.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px}.pf-grid .pcard{margin:0}.pcard.is-hidden{display:none}.pcard-media.app{display:flex;align-items:flex-end;justify-content:center;background:radial-gradient(120% 100% at 50% 0%,#1a1a26,#0a0a12)}.pcard-media.app img{width:auto;height:90%;max-width:62%;object-fit:contain;filter:none;transform:translateY(6%);border-radius:14px 14px 0 0;box-shadow:0 20px 50px -20px #000000b3}.pcard:hover .pcard-media.app img{transform:translateY(2%)}.pcard-media.soft{background:#0b0b12}.pcard-media.soft img{filter:grayscale(.3) contrast(1.02)}.pcard-media.txt{display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;background:radial-gradient(120% 120% at 30% 20%,#1d2440,#0a0c18)}.pcard-media.txt .txt-name{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.4rem,3.4vw,2rem);color:#fff;letter-spacing:.02em;line-height:1}.pf-empty{text-align:center;color:var(--paper-soft);padding:60px 0;font-size:1.05rem;display:none}.case-hero{position:relative;min-height:92svh;display:flex;align-items:flex-end;overflow:hidden;background:#0a0a0f;padding-bottom:64px}.case-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 78% 30%,rgba(217,52,57,.22),transparent 60%);pointer-events:none}.case-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:end;width:100%}.case-hero .crumb{margin-bottom:22px}.case-tagrow{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.case-tagrow span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--red-bright);border:1px solid rgba(233,69,96,.4);padding:6px 12px;border-radius:999px}.case-title{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(3rem,8vw,7rem);line-height:.88;color:#fff;letter-spacing:.004em}.case-hero-sub{font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.5;color:var(--t-dark);max-width:42ch;margin-top:22px}.case-hero-visual{display:flex;align-items:flex-end;justify-content:center;gap:18px}.case-phone{width:210px;border-radius:32px;padding:8px;background:linear-gradient(160deg,#26262f,#0c0c13);box-shadow:0 40px 80px -34px #000,inset 0 0 0 1px #ffffff12;position:relative}.case-phone:before{content:"";position:absolute;top:15px;left:50%;transform:translate(-50%);width:46px;height:5px;border-radius:3px;background:#ffffff29;z-index:2}.case-phone.sm{width:168px;margin-bottom:34px}.case-phone .ps{border-radius:26px;overflow:hidden;aspect-ratio:230/498;background:#000}.case-phone.sm .ps{border-radius:22px}.case-phone .ps img{width:100%;height:100%;object-fit:cover;object-position:top}.case-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-block:34px;border-bottom:1px solid var(--paper-line)}.case-meta .m .k{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:600}.case-meta .m .v{font-size:1.05rem;color:var(--paper-text);font-weight:600;margin-top:8px;letter-spacing:-.01em}.case-block{display:grid;grid-template-columns:.4fr .6fr;gap:40px;padding-block:clamp(48px,6vw,80px);border-bottom:1px solid var(--paper-line)}.case-block .lbl{display:flex;align-items:baseline;gap:14px}.case-block .lbl .no{font-family:var(--font-display);color:var(--red);font-size:1.2rem}.case-block .lbl h2{font-family:var(--font-body);font-weight:700;font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.02em;color:var(--paper-text);line-height:1.05}.case-block .body p{font-size:1.12rem;line-height:1.62;color:var(--paper-soft)}.case-block .body p+p{margin-top:16px}.case-block .body strong{color:var(--paper-text);font-weight:600}.case-block.dark{background:var(--noir-1);border-bottom-color:var(--line-dark)}.case-block.dark .lbl h2{color:#fff}.case-block.dark .body p{color:var(--t-dark)}.case-block.dark .body strong{color:#fff}.built-list{display:flex;flex-direction:column;gap:0;margin-top:8px}.built-list li{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--line-dark);font-size:1.05rem;color:var(--t-dark)}.built-list li:before{content:"›";color:var(--red-bright);font-weight:700}.case-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}.gphone{background:radial-gradient(120% 100% at 50% 0%,#15151f,#0a0a12);border:1px solid var(--line-dark);border-radius:14px;padding:26px 26px 0;display:flex;justify-content:center;overflow:hidden}.gphone .ps{width:200px;border-radius:22px 22px 0 0;overflow:hidden;aspect-ratio:230/470;background:#000;box-shadow:0 20px 50px -20px #000c}.gphone .ps img{width:100%;height:100%;object-fit:cover;object-position:top}.nextp{display:block;background:var(--noir-2);border:1px solid var(--line-dark);border-radius:12px;padding:40px;transition:.35s var(--ease)}.nextp:hover{border-color:#e9456073;transform:translateY(-3px)}.nextp .lbl{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--t-dim);font-weight:600}.nextp .nm{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2rem,4vw,3rem);color:#fff;margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:20px}.nextp .nm .arr{color:var(--red-bright);transition:transform .3s var(--ease)}.nextp:hover .nm .arr{transform:translate(8px)}@media (max-width:980px){.pf-grid{grid-template-columns:1fr 1fr}.case-meta{grid-template-columns:1fr 1fr;gap:22px}.case-gallery{grid-template-columns:1fr 1fr}}@media (max-width:760px){.pf-grid{grid-template-columns:1fr 1fr;gap:12px}.case-hero-grid{grid-template-columns:1fr;gap:30px}.case-hero-visual{justify-content:flex-start}.case-block{grid-template-columns:1fr;gap:18px;padding-block:40px}.case-meta{grid-template-columns:1fr 1fr}.case-gallery{grid-template-columns:1fr}}
