/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme,base,components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.bg-indigo{background-color:var(--indigo)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--indigo:#4f46e5;--indigo-m:#6366f1;--indigo-l:#a5b4fc;--indigo-dim:#4f46e51f;--indigo-border:#6366f14d;--accent-blue:#123af7;--accent-pink:#ffd2e1;--accent-punchy-pink:#ff77a5;--complementary-green:#00a594;--hero-gradient-from:#f4c7e5;--hero-gradient-to:#5860ef;--accent:#4f46e5;--accent-hover:#4338ca;--on-accent:#fff;--s4:4px;--s8:8px;--s16:16px;--s24:24px;--s32:32px;--s48:48px;--s64:64px;--r4:4px;--r8:8px;--r12:12px;--rpill:100px}[data-theme=dark]{--bg:#0d0d17;--bg2:#181830;--nav-bg:#0d0d17eb;--t1:#eeeae2;--t2:#eeeae2cc;--t3:#eeeae28c;--border:#26264a;--border-m:#eeeae22e;--icon-cta:#c7d2fe;--accent-text:#a5b4fc;--accent-focus:#a5b4fc;--field-border:#6366f1;--btn-border:#a5b4fc}[data-theme=light]{--bg:#f5f4fa;--bg2:#e9e7f7;--nav-bg:#f5f4faf0;--t1:#17172b;--t2:#17172bcc;--t3:#17172bad;--border:#17172b24;--border-m:#17172b38;--icon-cta:#17172b;--accent-text:#4338ca;--accent-focus:#4f46e5;--field-border:#6366f1;--btn-border:#4f46e5}[data-theme=light] .btn-secondary{box-shadow:0 2px 4px #4f46e533}[data-theme=light] .btn-secondary img{filter:brightness(0)}[data-theme=light] .nav-links a{color:var(--t1)}[data-theme=light] .card{box-shadow:0 1px 4px #17172b14}[data-theme=light] .projects-grid{border-color:var(--indigo)}[data-theme=light] .proj-card{border-color:var(--indigo-m)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--t1);font-family:Nunito,sans-serif;line-height:1.6;transition:background .3s,color .3s;overflow-x:hidden}nav{z-index:200;padding:0 var(--s24);background:var(--nav-bg);backdrop-filter:blur(20px);border-bottom:1px solid var(--indigo-border);justify-content:space-between;align-items:center;height:72px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{border-radius:var(--r8);background:var(--accent);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;text-decoration:none;transition:background .18s,transform .18s;display:flex}.nav-logo:hover{background:var(--accent-hover);transform:scale(1.05)}.nav-logo img{object-fit:contain;width:28px;height:28px;display:block}.nav-links{gap:var(--s64);list-style:none;display:flex;position:absolute;left:50%;transform:translate(-50%)}.nav-links a{color:var(--t2);border-bottom:2px solid #0000;padding-bottom:2px;font-size:16px;font-weight:600;text-decoration:none;transition:color .18s,border-color .18s}.nav-links a:hover{color:var(--t1);border-bottom-color:var(--indigo-m)}.nav-right{align-items:center;gap:var(--s16);display:flex}.btn-secondary{align-items:center;gap:var(--s8);height:40px;padding:var(--s8) var(--s24);border:1px solid var(--btn-border);border-radius:var(--r4);color:var(--icon-cta);cursor:pointer;background:0 0;font-family:Nunito,sans-serif;font-size:14px;font-weight:600;text-decoration:none;transition:background .18s,border-color .18s,color .18s,box-shadow .18s;display:inline-flex;box-shadow:0 2px 4px #a5b4fc4d}.btn-secondary:hover{background:var(--indigo-dim);border-color:var(--accent-text);color:var(--accent-text);box-shadow:0 2px 8px #a5b4fc73}.btn-secondary svg{width:16px;height:16px;fill:var(--icon-cta);flex-shrink:0}.hero-band{background:linear-gradient(180deg, var(--hero-gradient-from) 0%, var(--hero-gradient-to) 74.976%);width:100%;padding:var(--s48) var(--s24);justify-content:center;align-items:center;margin-top:72px;display:flex}.hero-illus{width:100%;height:auto;display:block}.hero-illus-desktop{max-width:1092px}.hero-illus-mobile{max-width:420px;display:none}@media (width<=900px){.hero-illus-desktop{display:none}.hero-illus-mobile{display:block}.hero-band{padding:var(--s24) var(--s16)}}.moka-section{padding:var(--s32) var(--s48)}.moka{width:100%;max-width:875px;margin:0 auto}.moka-title{color:var(--t1);margin-bottom:var(--s24);font-size:32px;font-weight:800}.moka-msgs{gap:var(--s16);max-height:220px;margin-bottom:var(--s16);flex-direction:column;display:flex;overflow-y:auto}.moka-msgs::-webkit-scrollbar{width:2px}.moka-msgs::-webkit-scrollbar-thumb{background:var(--indigo-border)}.msg{gap:var(--s8);align-items:flex-start;animation:.3s both fadeUp;display:flex}.msg.user{flex-direction:row-reverse}.msg-av{text-align:center;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;line-height:1;display:flex}.msg-av.ai{background:var(--indigo-dim);border:1px solid var(--indigo-border);color:var(--accent-text)}.msg-av.user{border:1px solid var(--border-m);color:var(--t3);background:#4f46e514}.msg-bubble{color:var(--t1);padding:var(--r12);max-width:calc(100% - 38px);font-size:14px;font-weight:600;line-height:1.65}.msg.ai .msg-bubble{background:var(--indigo-border);border-radius:var(--r12) var(--r12) var(--r12) var(--r4);border:1px solid #6366f173}.msg.user .msg-bubble{border-radius:var(--r12) var(--r12) var(--r4) var(--r12);background:var(--indigo-dim);border:1px solid var(--indigo-border);color:var(--t1)}.msg-bubble a{color:var(--accent-text);text-decoration:underline}.moka-bar{align-items:center;gap:var(--s8);background:var(--indigo-dim);border:1px solid var(--field-border);border-radius:var(--r12);padding:var(--r12) var(--s8) var(--r12) var(--s16);transition:border-color .2s,box-shadow .2s;display:flex}.moka-bar:focus-within{border-color:var(--accent-focus);box-shadow:0 0 0 3px var(--indigo-dim)}.moka-input{color:var(--t1);background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:Nunito,sans-serif;font-size:14px;font-weight:600}.moka-input::placeholder{color:var(--t3);font-style:normal}.btn-primary{align-items:center;gap:var(--s8);height:40px;padding:var(--s8) var(--s24);background:var(--accent);color:var(--on-accent);border-radius:var(--r8);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;font-family:Nunito,sans-serif;font-size:14px;font-weight:600;transition:background .18s,transform .1s;display:inline-flex}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.97)}.btn-primary svg{width:14px;height:14px;fill:var(--on-accent)}.gauge-row{align-items:center;gap:var(--r8);margin-top:var(--s8);display:flex}.gauge-track{background:var(--border-m);flex-shrink:0;width:120px;height:2px;position:relative}.gauge-fill{background:var(--accent);height:100%;transition:width .4s,background .3s;position:absolute;top:0;left:0}.gauge-label{color:var(--t2);white-space:nowrap;font-size:12px;font-weight:600}.gauge-label b{color:var(--accent-text);font-weight:600}.pills-row{gap:var(--s8);margin-top:var(--s24);flex-wrap:wrap;display:flex}.pill{padding:var(--s8) var(--s24);border:1px solid var(--indigo-border);border-radius:var(--rpill);color:var(--t1);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-family:Nunito,sans-serif;font-size:14px;font-weight:600;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.pill:hover{background:var(--indigo-dim);border-color:var(--accent-text);color:var(--accent-text)}.typing{align-items:center;gap:4px;padding:3px 0;display:flex}.typing span{background:var(--indigo-m);border-radius:50%;width:5px;height:5px;animation:1.1s infinite tb}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes tb{0%,60%,to{opacity:1}30%{opacity:.15}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.marquee-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--s24) 0;background:var(--bg);overflow:hidden}.marquee-inner{gap:var(--s48);white-space:nowrap;width:max-content;animation:36s linear infinite marquee;display:flex}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-item{letter-spacing:.07em;text-transform:uppercase;color:var(--t3);align-items:center;gap:var(--s8);font-size:14px;font-weight:500;display:inline-flex}.marquee-dot{color:var(--indigo-m);justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:inline-flex}.section{padding:var(--s32) var(--s48)}.sec-label{color:var(--accent-text);margin-bottom:4px;font-size:16px;font-weight:600}.sec-title{color:var(--t1);margin-bottom:var(--s24);font-size:32px;font-weight:800;line-height:1.2}.cards-grid{gap:var(--s24);flex-wrap:wrap;width:100%;display:flex}.card{background:var(--indigo-dim);border-radius:var(--r8);padding:var(--s16);border:1px solid #0000;flex-shrink:0;transition:transform .2s,box-shadow .2s,border-color .2s;overflow:hidden}.card:hover{border-color:var(--indigo-m);transform:translateY(-2px);box-shadow:0 8px 24px #4f46e524}.card-lbl{text-transform:uppercase;color:var(--t2);margin-bottom:var(--s8);font-size:14px;font-weight:500}.card-ttl{color:var(--t1);margin-bottom:var(--s8);font-size:18px;font-weight:800;line-height:1.3}.card-body{color:var(--t2);font-size:14px;font-weight:600;line-height:1.65}.skill-tags{gap:var(--s8);margin-top:var(--s8);flex-wrap:wrap;display:flex}.skill-pill{padding:var(--s8) var(--s24);border:1px solid var(--indigo-border);border-radius:var(--rpill);color:var(--t1);background:0 0;justify-content:center;align-items:center;font-size:14px;font-weight:600;transition:border-color .15s,color .15s;display:inline-flex}.skill-pill:hover{border-color:var(--accent-text);color:var(--accent-text)}.projects-grid{border:1px solid var(--indigo);border-radius:var(--r8);width:100%;display:flex;overflow:hidden}.proj-card{background:var(--bg);padding:var(--s16);border-right:1px solid var(--indigo-m);flex-direction:column;flex:1;transition:background .2s;display:flex}.proj-card>div:last-child{justify-content:center;gap:var(--s16);margin-top:var(--s16);flex-direction:column;display:flex}.proj-card:last-child{border-right:none}.proj-card:hover{background:var(--bg2)}.proj-top{gap:var(--s16);flex-direction:column;flex:1;display:flex}.proj-italic{color:var(--t2);margin-top:var(--s16);font-size:14px;font-style:italic;font-weight:500;line-height:1.65}.btn-visit{align-items:center;gap:var(--s8);background:var(--accent);border-radius:var(--r4);cursor:pointer;border:none;width:100%;height:40px;padding:0 6px 0 10px;transition:background .18s;display:flex}.btn-visit:hover{background:var(--accent-hover)}.btn-visit a{color:var(--on-accent);flex:1;font-size:14px;font-weight:600;text-decoration:none}.btn-visit-icon{padding:var(--s8) var(--s24);background:var(--accent-hover);border-radius:var(--r4);flex-shrink:0;justify-content:center;align-items:center;transition:background .18s;display:flex}.btn-visit:hover .btn-visit-icon{background:var(--accent-hover)}@supports (color:color-mix(in lab, red, red)){.btn-visit:hover .btn-visit-icon{background:color-mix(in srgb,var(--accent-hover) 80%,black)}}.btn-visit-icon svg{width:16px;height:16px;fill:var(--on-accent)}.discutons-grid{gap:var(--s16);grid-template-columns:repeat(3,1fr);width:100%;max-width:700px;margin:0 auto;display:grid}.discutons-tile{aspect-ratio:1;border-radius:var(--r12);transition:transform .2s,box-shadow .2s;display:block;position:relative;overflow:hidden}.discutons-tile img{object-fit:cover;width:100%;height:100%;display:block}a.discutons-tile:hover{transform:translateY(-3px);box-shadow:0 8px 20px #00000040}.discutons-tile.bg-blue{background:var(--accent-blue)}.discutons-tile.bg-green{background:var(--complementary-green)}.discutons-tile.bg-punchy{background:var(--accent-punchy-pink)}.discutons-tile.bg-indigo{background:var(--indigo-m)}.discutons-tile.bg-pink{background:var(--accent-pink)}.tile-fx-heat{filter:none}.discutons-tile:hover .tile-fx-heat{filter:url(#heatDistortion)}@media (prefers-reduced-motion:reduce){.discutons-tile:hover .tile-fx-heat{filter:none}}footer{padding:var(--s24);background:var(--nav-bg);border-top:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.footer-logo img{object-fit:contain;opacity:.6;filter:brightness(0)invert();width:auto;height:24px;transition:opacity .18s,filter .3s}[data-theme=light] .footer-logo img{filter:brightness(0)saturate()invert(42%)sepia(80%)saturate(600%)hue-rotate(210deg)brightness();opacity:1}.footer-logo:hover img{opacity:1}.footer-copy{color:var(--accent-text);font-size:14px;font-weight:600}.footer-kanji{color:var(--indigo-m);opacity:.5;font-size:18px;font-weight:800}@media (width<=1024px){.nav-links{display:none}.section,.moka-section{padding:var(--s32) var(--s24)}}@media (width<=768px){nav{padding:0 var(--s16)}.nav-behance{display:none}.section,.moka-section{padding:var(--s24) var(--s16)}.cards-grid{gap:var(--s16)}.card{flex-basis:100%!important;min-width:0!important}.projects-grid{flex-direction:column}.proj-card{border-right:none;border-bottom:1px solid var(--indigo-m)}.proj-card:last-child{border-bottom:none}.discutons-grid{max-width:360px}footer{gap:var(--s8);text-align:center;flex-direction:column}}[data-theme=light] .btn-visit-icon img{filter:brightness(0)invert()}[data-theme=light] .marquee-strip{border-color:#1a1a2e1a}.ic-arrow{width:16px;height:16px;fill:var(--icon-cta);flex-shrink:0;transition:fill .2s}:focus-visible{outline:2px solid var(--accent-focus);outline-offset:2px}.moka-input:focus-visible{outline:none}.skip-link{left:var(--s16);top:var(--s16);z-index:300;padding:var(--s8) var(--s16);border-radius:var(--r8);background:var(--accent);color:var(--on-accent);font-weight:700;text-decoration:none;position:fixed;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.toggle{align-items:center;gap:var(--s8);height:40px;padding:0 var(--s8);border:1px solid var(--btn-border);border-radius:var(--rpill);color:var(--t2);cursor:pointer;background:0 0;font-family:Nunito,sans-serif;text-decoration:none;display:inline-flex}.toggle:hover{background:var(--indigo-dim)}.tg-ic{fill:var(--t3);flex-shrink:0}[data-theme=dark] .tg-moon,[data-theme=light] .tg-sun{fill:var(--accent-text)}.tg-track{border-radius:var(--rpill);border:1px solid var(--btn-border);background:var(--indigo-dim);flex-shrink:0;width:36px;height:20px;position:relative}.tg-thumb{background:var(--accent-text);border-radius:50%;width:14px;height:14px;position:absolute;top:2px;left:2px}[data-theme=light] .tg-thumb{transform:translate(16px)}.lang-toggle{padding:3px}.tg-lang{grid-template-columns:1fr 1fr;width:68px;height:32px;display:grid;position:relative}.tg-seg{z-index:1;letter-spacing:.04em;color:var(--t2);justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex;position:relative}.tg-pill{border-radius:var(--rpill);background:var(--accent);width:50%;height:100%;position:absolute;top:0;left:0}.lang-toggle.is-fr .tg-fr,.lang-toggle.is-en .tg-en{color:var(--on-accent)}.lang-toggle.is-en .tg-pill{transform:translate(100%)}@media (prefers-reduced-motion:no-preference){.tg-thumb,.tg-pill{transition:transform .22s cubic-bezier(.3,.7,.2,1)}.tg-seg,.tg-ic{transition:color .22s,fill .22s}}@media (width<=520px){.nav-linkedin{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
