.otr-flip{display:flex;perspective:1200px;min-width:0}.otr-flip-inner{position:relative;display:grid;width:100%;min-width:0;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);cursor:pointer;-webkit-tap-highlight-color:transparent}.otr-flip-on .otr-flip-inner{transform:rotateY(180deg)}.otr-flip-inner:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}.otr-flip-back,.otr-flip-front{grid-area:1/1;min-width:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:visibility 0s linear .25s}.otr-flip-front{visibility:visible}.otr-flip-back,.otr-flip-on .otr-flip-front{visibility:hidden}.otr-flip-on .otr-flip-back{visibility:visible}.otr-flip-front{height:100%}.otr-flip-hint{position:absolute;right:14px;bottom:12px;z-index:1;font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);transition:color .15s}.otr-flip-hint:before{content:"↻ "}.otr-proj:hover .otr-flip-hint{color:var(--gold)}.otr-flip-back{transform:rotateY(180deg);display:flex;flex-direction:column;overflow:hidden;background:var(--fb-bg,#1a1814);color:var(--fb-text,#f0e9df);font-family:var(--fb-font,var(--font-body));border:1px solid var(--fb-rule,transparent)}.otr-flip-stage{position:relative;flex:1 1 auto;min-height:108px;overflow:hidden}.otr-flip-back-text{display:flex;flex-direction:column;gap:4px;padding:12px 16px 14px;border-top:1px solid var(--fb-rule,hsla(0,0%,100%,.12))}.otr-flip-back-name{font-family:var(--fb-font,var(--font-display));font-weight:600;font-size:15px;letter-spacing:-.01em;line-height:1.2}.otr-flip-back-blurb{font-size:11.5px;line-height:1.4;color:var(--fb-muted,hsla(35,36%,91%,.7));display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.otr-flip-back .otr-flip-back-link{margin-top:2px;font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--fb-link,#c9a84c);text-decoration:none}.otr-flip-back .otr-flip-back-link:hover{text-decoration:underline;color:var(--fb-link,#c9a84c)}.otr-flip-back-link-off{opacity:.6}.otr-flip:not(.otr-flip-on) .otr-flip-back *,.otr-flip:not(.otr-flip-on) .otr-flip-back :after,.otr-flip:not(.otr-flip-on) .otr-flip-back :before{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.otr-flip-inner{transition:none}.otr-flip-back,.otr-flip-front{transition-delay:0s}.otr-flip-back *,.otr-flip-back :after,.otr-flip-back :before{animation:none!important;transition:none!important}}.otr-flip-back:has(.otr-wv){--fb-bg:#f7f3ec;--fb-text:#2f3a2c;--fb-muted:#6d7364;--fb-link:#6f8364;--fb-rule:#e4dccb;--fb-font:Georgia,"Times New Roman",serif}.otr-wv{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12px;background:radial-gradient(circle at 80% 10%,#f6e1dc 0,transparent 45%),radial-gradient(circle at 10% 90%,#e4ead9 0,transparent 45%),#f7f3ec}.otr-wv-frame{position:relative;width:min(170px,100%);aspect-ratio:160/84;overflow:hidden;border:1px solid #d9d2c0;background:#e9e6df}.otr-wv-layer{position:absolute;inset:0;width:100%;height:100%;display:block}.otr-wv-after{position:absolute;inset:0;clip-path:inset(0 0 0 22%);animation:otr-wv-sweep 4.2s ease-in-out infinite alternate}.otr-wv-handle{position:absolute;top:0;bottom:0;left:22%;width:2px;margin-left:-1px;background:#fffdf8;animation:otr-wv-handle 4.2s ease-in-out infinite alternate}.otr-flip-back .otr-wv-handle span{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fffdf8;border:1px solid #8a9a7b}.otr-wv-handle span:before{content:"‹ ›";position:absolute;inset:0;display:grid;place-items:center;font:9px/1 Georgia,serif;color:#6f8364;letter-spacing:-1px}.otr-flip-back .otr-wv-tag{position:absolute;bottom:5px;font:italic 8.5px/1 Georgia,serif;padding:2px 5px;background:rgba(255,253,248,.85);color:#4d5747;border-radius:999px}.otr-wv-tag-l{left:5px}.otr-wv-tag-r{right:5px}.otr-flip-back .otr-wv-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#8a9a7b;color:#fbf8f2;font:11px/1 Georgia,serif;letter-spacing:.04em;animation:otr-wv-pulse 4.2s ease-in-out infinite}.otr-flip-back .otr-wv-pill i{width:6px;height:6px;border-radius:50%;background:#f1d6cf}@keyframes otr-wv-sweep{0%{clip-path:inset(0 0 0 22%)}to{clip-path:inset(0 0 0 80%)}}@keyframes otr-wv-handle{0%{left:22%}to{left:80%}}@keyframes otr-wv-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.otr-flip-back:has(.otr-cym){--fb-bg:#ff6a4d;--fb-text:#fff7f2;--fb-muted:rgba(255,247,242,.82);--fb-link:#fff2b8;--fb-rule:hsla(0,0%,100%,.25);--fb-font:"Nunito","Segoe UI Rounded","Arial Rounded MT Bold",system-ui,sans-serif}.otr-cym{display:flex;justify-content:center;align-items:flex-end;background:linear-gradient(135deg,#ff7a45,#ff4d8d)}.otr-flip-back .otr-cym-blob{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.16);animation:otr-cym-float 6s ease-in-out infinite alternate}.otr-cym-blob-a{width:110px;height:110px;left:-30px;top:-40px}.otr-cym-blob-b{width:80px;height:80px;right:-20px;bottom:-30px;animation-delay:-3s}.otr-flip-back .otr-cym-phone{position:relative;width:86px;height:118px;margin-top:10px;border-radius:18px 18px 0 0;background:#fff6f0;border:3px solid #3a1d2a;border-bottom:0;overflow:hidden;font-family:var(--fb-font)}.otr-flip-back .otr-cym-notch{position:absolute;top:5px;left:50%;width:26px;height:5px;margin-left:-13px;border-radius:999px;background:#3a1d2a}.otr-flip-back .otr-cym-notif{position:absolute;top:15px;left:5px;right:5px;display:flex;gap:5px;align-items:center;padding:5px 6px;border-radius:9px;background:#fff;color:#3a1d2a;box-shadow:0 4px 10px rgba(58,29,42,.18);animation:otr-cym-nudge 5s cubic-bezier(.2,.9,.3,1.2) infinite}.otr-flip-back .otr-cym-notif-icon{width:16px;height:16px;border-radius:5px;background:#ff6a4d;color:#fff;font-size:10px;display:grid;place-items:center;flex:none}.otr-cym-notif-text{display:flex;flex-direction:column;line-height:1.15}.otr-cym-notif-text b{font-size:8.5px}.otr-cym-notif-text small{font-size:6.5px;color:#8a6670}.otr-cym-streak{position:absolute;top:58px;left:0;right:0;display:flex;flex-direction:column;align-items:center;line-height:1.1;color:#3a1d2a}.otr-cym-flame{font-size:18px;animation:otr-cym-flame 1.2s ease-in-out infinite alternate}.otr-cym-streak b{font-size:9px}.otr-cym-streak small{font-size:6.5px;color:#8a6670}.otr-flip-back .otr-cym-callbtn{position:absolute;bottom:6px;left:10px;right:10px;padding:4px 0;border-radius:999px;background:#ff4d8d;color:#fff;font-size:8px;font-weight:700;text-align:center}@keyframes otr-cym-nudge{0%{transform:translateY(-46px);opacity:0}14%{transform:translateY(0);opacity:1}80%{transform:translateY(0);opacity:1}92%,to{transform:translateY(-46px);opacity:0}}@keyframes otr-cym-flame{0%{transform:scale(1) rotate(-4deg)}to{transform:scale(1.15) rotate(4deg)}}@keyframes otr-cym-float{0%{transform:translate(0)}to{transform:translate(8px,10px)}}.otr-flip-back:has(.otr-ttf){--fb-bg:#c8a97e;--fb-text:#1f3a2c;--fb-muted:#4a4232;--fb-link:#1f4d3a;--fb-rule:rgba(31,77,58,.3);--fb-font:Georgia,"Times New Roman",serif}.otr-ttf{display:grid;place-items:center;background:repeating-linear-gradient(0deg,hsla(0,0%,100%,.05) 0 1px,transparent 1px 4px),radial-gradient(circle at 30% 20%,#d4b88f 0,transparent 50%),#c8a97e}.otr-ttf-cabinet{height:90%;max-height:120px;width:auto;overflow:visible}.otr-ttf-drawer{animation:otr-ttf-slide 5.4s ease-in-out infinite}.otr-ttf-d2{animation-delay:1.8s}.otr-ttf-d3{animation-delay:3.6s}.otr-ttf-tag{position:absolute;padding:3px 6px 3px 10px;background:#e9d6b4;color:#1f3a2c;font:700 9px/1 Georgia,serif;border:1px solid #9c7d52;transform-origin:0 0;animation:otr-ttf-swing 3.4s ease-in-out infinite alternate}.otr-flip-back .otr-ttf-tag i{position:absolute;left:3px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;border:1px solid #9c7d52;background:#c8a97e}.otr-ttf-tag:before{content:"";position:absolute;left:5px;top:-14px;width:1px;height:14px;background:#7a5f3b}.otr-ttf-tag-a{left:14%;top:22px;transform:rotate(-8deg)}.otr-ttf-tag-b{right:12%;top:44px;transform:rotate(6deg);animation-delay:-1.7s}.otr-ttf-sign{position:absolute;right:10px;bottom:8px;font:italic 10px/1 Georgia,serif;color:#1f3a2c;letter-spacing:.06em}@keyframes otr-ttf-slide{0%,to{transform:translateX(0)}10%,24%{transform:translateX(14px)}34%{transform:translateX(0)}}@keyframes otr-ttf-swing{0%{rotate:-5deg}to{rotate:5deg}}.otr-flip-back:has(.otr-cho){--fb-bg:#0b0b12;--fb-text:#f5f5ff;--fb-muted:rgba(245,245,255,.66);--fb-link:#1db954;--fb-rule:hsla(0,0%,100%,.12);--fb-font:var(--font-display)}.otr-cho{background:#0b0b12}.otr-cho-glow{position:absolute;inset:-40% -20%;background:radial-gradient(ellipse at 30% 30%,rgba(255,61,187,.32) 0,transparent 45%),radial-gradient(ellipse at 75% 70%,rgba(0,212,255,.26) 0,transparent 45%);animation:otr-cho-glow 8s ease-in-out infinite alternate}.otr-cho-lyric{position:absolute;left:64px;right:12px;top:18px;display:flex;flex-wrap:wrap;gap:0 6px;font-family:var(--font-display);font-weight:700;font-size:16px;line-height:1.15;letter-spacing:-.02em}.otr-cho-w{color:rgba(245,245,255,.38);animation:otr-cho-hl 3.2s linear infinite}.otr-cho-w2{animation-delay:.8s}.otr-cho-w3{animation-delay:1.6s}.otr-cho-w4{animation-delay:2.4s}.otr-cho-dancer{position:absolute;left:12px;top:12px;width:44px;height:52px;overflow:visible;animation:otr-cho-bob .8s ease-in-out infinite alternate}.otr-cho-arm,.otr-cho-leg{transform-box:view-box}.otr-cho-arm{transform-origin:30px 22px;animation:otr-cho-swing .8s ease-in-out infinite alternate}.otr-cho-arm-r{animation-direction:alternate-reverse}.otr-cho-leg{transform-origin:30px 40px;animation:otr-cho-step .8s ease-in-out infinite alternate}.otr-cho-leg-r{animation-direction:alternate-reverse}.otr-cho-beats{position:absolute;left:12px;right:12px;bottom:12px;display:flex;gap:4px;align-items:flex-end;height:18px}.otr-flip-back .otr-cho-beat{flex:1;height:6px;border-radius:2px;background:rgba(245,245,255,.2);transform-origin:bottom;animation:otr-cho-beat 3.2s linear infinite}.otr-cho-spot{position:absolute;right:12px;top:10px;display:inline-flex;align-items:center;gap:4px;font:600 8px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:#1db954}.otr-flip-back .otr-cho-spot i{width:7px;height:7px;border-radius:50%;background:#1db954;box-shadow:0 0 8px #1db954}@keyframes otr-cho-hl{0%,24%{color:#fff;text-shadow:0 0 10px rgba(255,61,187,.9),0 0 18px rgba(0,212,255,.6)}30%,to{color:rgba(245,245,255,.38);text-shadow:none}}@keyframes otr-cho-beat{0%{background:#1db954;transform:scaleY(3)}12%,to{background:rgba(245,245,255,.2);transform:scaleY(1)}}@keyframes otr-cho-swing{0%{transform:rotate(-28deg)}to{transform:rotate(28deg)}}@keyframes otr-cho-step{0%{transform:rotate(-16deg)}to{transform:rotate(16deg)}}@keyframes otr-cho-bob{0%{transform:translateY(0)}to{transform:translateY(3px)}}@keyframes otr-cho-glow{0%{transform:rotate(0deg) scale(1)}to{transform:rotate(12deg) scale(1.15)}}.otr-flip-back:has(.otr-vib){--fb-bg:#0d0d0b;--fb-text:#f4f1ea;--fb-muted:hsla(42,31%,94%,.62);--fb-link:#f4f1ea;--fb-rule:hsla(42,31%,94%,.16);--fb-font:var(--font-mono)}.otr-vib{background:#0d0d0b;font-family:var(--font-mono);color:#f4f1ea;padding:12px 14px;gap:8px}.otr-vib,.otr-vib-term{display:flex;flex-direction:column}.otr-vib-term{gap:3px;font-size:10.5px;line-height:1.4}.otr-vib-line{display:flex;align-items:center;white-space:nowrap}.otr-vib-prompt{color:#c9a84c;margin-right:6px}.otr-vib-typed{display:inline-block;overflow:hidden;width:19ch;animation:otr-vib-type 7s steps(19) infinite}.otr-vib-cursor{width:6px;height:12px;margin-left:2px;background:#f4f1ea;animation:otr-vib-blink 1s steps(2,start) infinite}.otr-vib-out{font-size:9.5px;color:hsla(42,31%,94%,.5);animation:otr-vib-out 7s linear infinite}.otr-flip-back .otr-vib-app{align-self:flex-start;width:min(150px,100%);border:1px solid hsla(42,31%,94%,.35);border-radius:6px;overflow:hidden;font-size:8.5px;line-height:1.3;transform-origin:20% 0;animation:otr-vib-app 7s cubic-bezier(.2,.9,.3,1.1) infinite}.otr-vib-bar{display:flex;align-items:center;gap:3px;padding:3px 5px;background:hsla(42,31%,94%,.12);border-bottom:1px solid hsla(42,31%,94%,.2)}.otr-flip-back .otr-vib-bar i{width:5px;height:5px;border-radius:50%;background:hsla(42,31%,94%,.45)}.otr-vib-bar em{margin-left:6px;font-style:normal;font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:hsla(42,31%,94%,.7)}.otr-vib-row{display:block;padding:3px 7px;border-bottom:1px solid hsla(42,31%,94%,.1)}.otr-vib-row:before{content:"☐ "}.otr-vib-row-done:before{content:"☑ ";color:#1db954}.otr-vib-row:last-child{border-bottom:0}@keyframes otr-vib-type{0%{width:0}22%,94%{width:19ch}to{width:0}}@keyframes otr-vib-blink{to{visibility:hidden}}@keyframes otr-vib-out{0%,24%{opacity:0}28%,94%{opacity:1}to{opacity:0}}@keyframes otr-vib-app{0%,38%{opacity:0;transform:scale(.7)}46%,94%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.7)}}.otr-flip-back:has(.otr-wb){--fb-bg:#1a1814;--fb-text:#f0e9df;--fb-muted:hsla(35,36%,91%,.66);--fb-link:#c9a84c;--fb-rule:#3a382c;--fb-font:var(--font-display)}.otr-wb{background:#1a1814;padding:12px 14px;display:grid;place-items:center}.otr-wb-knight{position:absolute;right:10px;top:2px;font-size:34px;line-height:1;color:rgba(201,168,76,.16);pointer-events:none}.otr-wb-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;max-width:200px}.otr-flip-back .otr-wb-tile{position:relative;display:flex;align-items:center;gap:6px;padding:8px 9px;border:1px solid #3a382c;border-radius:4px;background:#242019;color:hsla(35,36%,91%,.6);font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;animation:otr-wb-light 4.4s ease-in-out infinite}.otr-wb-tile i{font-style:normal;font-size:11px;color:#c9a84c}.otr-wb-tile em{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#c9a84c;transform:scaleX(0);transform-origin:left;animation:otr-wb-bar 4.4s ease-in-out infinite}@keyframes otr-wb-light{0%,30%,to{border-color:#3a382c;background:#242019;color:hsla(35,36%,91%,.6);box-shadow:none}22%,6%{border-color:#c9a84c;background:#2e2820;color:#f0e9df;box-shadow:0 0 14px rgba(201,168,76,.25)}}@keyframes otr-wb-bar{0%,30%,to{transform:scaleX(0)}22%,6%{transform:scaleX(1)}}.otr-flip-inner,.otr-grid-projects>.otr-flip{align-self:stretch;height:100%}.otr-flip-back{height:100%;min-height:100%}