It works for screen viewing AND PDF rendering (print rules at the bottom). No JavaScript required. ============================================================ */ /* --- Fonts ---------------------------------------------------- Inter — body, UI, default Roboto — display / headings (the site aliases this as "serif") Source Serif 4 — long-form editorial (essays, quotes, callouts) The site loads all three; we keep the same set so any doc matches the website even when mixing display modes. ------------------------------------------------------------ */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Roboto:wght@400;500;700;900&family=Source+Serif+4:ital,opsz,wght@0,8..60,300;0,8..60,400;0,8..60,600;1,8..60,400&display=swap'); /* --- Tokens (light, default) -------------------------------- */ :root { /* Brand colors — HSL parts as the site uses, plus resolved hex for reference */ --background: 40 10% 98%; /* #FAF9F6 — warm off-white */ --foreground: 0 0% 12%; /* #1F1F1F — near-black */ --card: 0 0% 100%; /* #FFFFFF */ --card-foreground: 0 0% 12%; --muted: 40 5% 90%; /* warm grey panel */ --muted-foreground: 220 9% 46%; /* cool slate body-secondary */ --primary: 32 95% 44%; /* #DB7400 — warm amber accent */ --primary-foreground: 0 0% 100%; --accent: 32 95% 44%; --accent-foreground: 0 0% 100%; --border: 220 13% 91%; --ring: 32 95% 44%; --destructive: 0 84% 60%; /* Type scale (Tailwind-compatible) */ --text-xs: 0.75rem; --text-sm: 0.875rem; --text-base: 1rem; --text-lg: 1.125rem; --text-xl: 1.25rem; --text-2xl: 1.5rem; --text-3xl: 1.875rem; --text-4xl: 2.25rem; --text-5xl: 3rem; --text-6xl: 3.75rem; /* Weights */ --weight-light: 300; --weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; --weight-black: 900; /* Tracking & leading */ --tracking-tight: -0.025em; --tracking-wider: 0.05em; --tracking-widest: 0.1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; /* Spacing — base unit 0.25rem (4px), Tailwind-compatible */ --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; /* Radius */ --radius: 0.75rem; --radius-sm: 0.375rem; --radius-lg: 1rem; --radius-xl: 1.5rem; /* Elevation */ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.06), 0 1px 2px -1px rgb(0 0 0 / 0.06); --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.06), 0 2px 4px -2px rgb(0 0 0 / 0.06); /* Containers */ --content-width: 42rem; /* 672px — comfortable reading column */ --page-width: 56rem; /* 896px — wider page max */ /* Font stacks */ --font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif; --font-display: 'Roboto', 'Inter', sans-serif; --font-editorial: 'Source Serif 4', Georgia, 'Times New Roman', serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace; } /* --- Tokens (dark) ------------------------------------------- Auto-applies if user prefers dark, or if .dark is on . ------------------------------------------------------------ */ .dark, :root.dark { --background: 20 14% 4%; --foreground: 40 10% 98%; --card: 20 14% 8%; --card-foreground: 40 10% 98%; --muted: 20 14% 12%; --muted-foreground: 220 9% 60%; --border: 20 14% 12%; } @media (prefers-color-scheme: dark) { :root:not(.light) { --background: 20 14% 4%; --foreground: 40 10% 98%; --card: 20 14% 8%; --card-foreground: 40 10% 98%; --muted: 20 14% 12%; --muted-foreground: 220 9% 60%; --border: 20 14% 12%; } } /* ============================================================ Base ============================================================ */ *, *::before, *::after { box-sizing: border-box; } html { font-family: var(--font-sans); font-size: 16px; line-height: var(--leading-normal); color: hsl(var(--foreground)); background: hsl(var(--background)); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } body { margin: 0; font-weight: var(--weight-regular); font-feature-settings: 'cv11', 'ss01'; /* Inter alternates — subtle, on the website */ } /* --- Headings ------------------------------------------------ Roboto for display, tight tracking, weight 700. Use h1 for the doc title only; h2 for section starts; h3 for sub-sections. Don't skip levels. ------------------------------------------------------------ */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: var(--weight-bold); line-height: var(--leading-tight); letter-spacing: var(--tracking-tight); margin: 0 0 var(--space-4); color: hsl(var(--foreground)); } h1 { font-size: var(--text-5xl); font-weight: var(--weight-black); margin-bottom: var(--space-6); } h2 { font-size: var(--text-3xl); margin-top: var(--space-12); } h3 { font-size: var(--text-xl); margin-top: var(--space-8); } h4 { font-size: var(--text-lg); margin-top: var(--space-6); } h5 { font-size: var(--text-base); text-transform: uppercase; letter-spacing: var(--tracking-widest); color: hsl(var(--muted-foreground)); } h6 { font-size: var(--text-sm); text-transform: uppercase; letter-spacing: var(--tracking-widest); color: hsl(var(--muted-foreground)); } /* First heading after a section start shouldn't have top margin */ section > :first-child, article > :first-child, .page > :first-child { margin-top: 0; } /* --- Body copy ----------------------------------------------- */ p { margin: 0 0 var(--space-4); max-width: var(--content-width); } p.lead { font-size: var(--text-xl); line-height: var(--leading-snug); color: hsl(var(--muted-foreground)); font-weight: var(--weight-regular); } small, .text-sm { font-size: var(--text-sm); } .text-muted { color: hsl(var(--muted-foreground)); } /* --- Links --------------------------------------------------- */ a { color: hsl(var(--primary)); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; } a:hover { text-decoration-thickness: 2px; } /* --- Lists --------------------------------------------------- */ ul, ol { margin: 0 0 var(--space-4); padding-left: var(--space-6); } li { margin-bottom: var(--space-2); } li > ul, li > ol { margin-top: var(--space-2); margin-bottom: 0; } /* Dash-style list (signature site pattern: "Term — explanation") */ ul.dash { list-style: none; padding-left: 0; } ul.dash > li { position: relative; padding-left: var(--space-6); } ul.dash > li::before { content: '—'; position: absolute; left: 0; color: hsl(var(--primary)); font-weight: var(--weight-bold); } /* --- Quotes / pull quotes ----------------------------------- */ blockquote { font-family: var(--font-editorial); font-style: italic; font-size: var(--text-xl); line-height: var(--leading-snug); color: hsl(var(--foreground)); border-left: 3px solid hsl(var(--primary)); margin: var(--space-8) 0; padding: 0 var(--space-6); max-width: var(--content-width); } blockquote cite { display: block; margin-top: var(--space-3); font-family: var(--font-sans); font-style: normal; font-size: var(--text-sm); color: hsl(var(--muted-foreground)); } /* --- Code ---------------------------------------------------- */ code, kbd, pre { font-family: var(--font-mono); font-size: 0.92em; } code { background: hsl(var(--muted)); padding: 0.15em 0.4em; border-radius: var(--radius-sm); } pre { background: hsl(var(--muted)); padding: var(--space-4); border-radius: var(--radius); overflow-x: auto; line-height: var(--leading-snug); } pre code { background: none; padding: 0; } /* --- Dividers ----------------------------------------------- */ hr { border: 0; border-top: 1px solid hsl(var(--border)); margin: var(--space-12) 0; } /* --- Tables ------------------------------------------------- */ table { width: 100%; border-collapse: collapse; margin: var(--space-6) 0; font-size: var(--text-sm); } th, td { padding: var(--space-3) var(--space-4); text-align: left; border-bottom: 1px solid hsl(var(--border)); vertical-align: top; } th { font-family: var(--font-display); font-weight: var(--weight-bold); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: var(--tracking-wider); color: hsl(var(--muted-foreground)); border-bottom: 2px solid hsl(var(--foreground)); } /* ============================================================ Components ============================================================ */ /* --- Page shell --------------------------------------------- */ .page { max-width: var(--page-width); margin: 0 auto; padding: var(--space-16) var(--space-8); } /* --- Card --------------------------------------------------- */ .card { background: hsl(var(--card)); color: hsl(var(--card-foreground)); border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: var(--space-6); box-shadow: var(--shadow-sm); } .card + .card { margin-top: var(--space-4); } /* --- Callout ------------------------------------------------ */ .callout { border-left: 3px solid hsl(var(--primary)); background: hsl(var(--muted) / 0.5); padding: var(--space-4) var(--space-6); border-radius: 0 var(--radius) var(--radius) 0; margin: var(--space-6) 0; } .callout > :first-child { margin-top: 0; } .callout > :last-child { margin-bottom: 0; } /* --- Keynote: highlighted "hard concept" callout (decks + notes) --- Use on a slide to flag difficult, verified content with a pointer to the teacher notes for the full detail. Self-contained so it works wherever praxis.css is loaded or inlined. */ .keynote { display: flex; gap: var(--space-3); align-items: flex-start; margin-top: var(--space-5); padding: var(--space-3) var(--space-4); background: hsl(var(--primary) / 0.07); border: 1px solid hsl(var(--primary) / 0.35); border-left: 4px solid hsl(var(--primary)); border-radius: 0 var(--radius) var(--radius) 0; } .keynote::before { content: "\2691"; /* ⚑ flag */ color: hsl(var(--primary)); font-size: var(--text-lg); line-height: 1.1; } .keynote p { margin: 0; font-size: var(--text-sm); line-height: var(--leading-snug); color: hsl(var(--foreground)); } .keynote .kn-label { display: block; font-family: var(--font-display); font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: var(--tracking-wider); font-size: var(--text-xs); color: hsl(var(--primary)); margin-bottom: 2px; } .keynote .kn-see { color: hsl(var(--muted-foreground)); font-style: italic; } /* --- Button ------------------------------------------------- */ .btn { display: inline-block; font-family: var(--font-sans); font-weight: var(--weight-medium); font-size: var(--text-base); padding: var(--space-3) var(--space-6); border-radius: var(--radius); border: 1px solid transparent; text-decoration: none; cursor: pointer; transition: all 0.15s ease-in-out; } .btn-primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); } .btn-primary:hover { filter: brightness(1.1); } .btn-ghost { background: transparent; color: hsl(var(--foreground)); border-color: hsl(var(--border)); } /* --- Tag / chip --------------------------------------------- */ .tag { display: inline-block; font-family: var(--font-sans); font-size: var(--text-xs); font-weight: var(--weight-medium); text-transform: uppercase; letter-spacing: var(--tracking-wider); color: hsl(var(--muted-foreground)); background: hsl(var(--muted)); padding: var(--space-1) var(--space-3); border-radius: 999px; } .tag-primary { background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); } /* --- Eyebrow (small label above heading) -------------------- */ .eyebrow { display: block; font-family: var(--font-sans); font-size: var(--text-xs); font-weight: var(--weight-medium); text-transform: uppercase; letter-spacing: var(--tracking-widest); color: hsl(var(--primary)); margin-bottom: var(--space-3); } /* --- Header / brand mark ----------------------------------- */ .brand { font-family: var(--font-display); font-weight: var(--weight-black); font-size: var(--text-xl); letter-spacing: var(--tracking-tight); } .brand .dot { color: hsl(var(--primary)); } /* "Tutto." with orange period */ .doc-header { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: var(--space-4); border-bottom: 1px solid hsl(var(--border)); margin-bottom: var(--space-12); } .doc-header .meta { font-size: var(--text-sm); color: hsl(var(--muted-foreground)); } .doc-footer { margin-top: var(--space-16); padding-top: var(--space-4); border-top: 1px solid hsl(var(--border)); font-size: var(--text-sm); color: hsl(var(--muted-foreground)); display: flex; justify-content: space-between; } /* --- Grid helpers ------------------------------------------- */ .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); } .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); } .stack-sm > * + * { margin-top: var(--space-2); } .stack > * + * { margin-top: var(--space-4); } .stack-lg > * + * { margin-top: var(--space-8); } /* --- Slide deck (16:9 landscape) ---------------------------- */ .slide { width: 100%; aspect-ratio: 16 / 9; padding: var(--space-12) var(--space-16); background: hsl(var(--background)); display: flex; flex-direction: column; justify-content: center; page-break-after: always; break-after: page; } .slide.title { justify-content: flex-end; background: hsl(var(--foreground)); color: hsl(var(--background)); } .slide.title h1 { color: hsl(var(--background)); font-size: var(--text-6xl); } .slide.title .eyebrow { color: hsl(var(--primary)); } .slide h2 { font-size: var(--text-4xl); margin-top: 0; } .slide .slide-number { position: absolute; bottom: var(--space-6); right: var(--space-8); font-size: var(--text-xs); color: hsl(var(--muted-foreground)); letter-spacing: var(--tracking-wider); } /* ============================================================ Print / PDF ------------------------------------------------------------ These rules apply when Claude renders the doc to PDF (puppeteer, weasyprint, browser print). Tested at A4. ============================================================ */ @page { size: A4; margin: 20mm 18mm; } @page slide { size: A4 landscape; margin: 0; } @media print { html, body { background: white; color: black; font-size: 10.5pt; } .page { padding: 0; max-width: none; } a { color: hsl(var(--foreground)); text-decoration: none; } a[href^="http"]::after { content: ' (' attr(href) ')'; font-size: 0.8em; color: hsl(var(--muted-foreground)); word-break: break-all; } h1, h2, h3 { page-break-after: avoid; break-after: avoid-page; } p, li, blockquote { page-break-inside: avoid; break-inside: avoid; } .card, .callout { page-break-inside: avoid; break-inside: avoid; } .doc-header, .doc-footer { background: white; } .no-print { display: none !important; } .slide { page: slide; height: 100vh; padding: 18mm 22mm; } }
Tutto.Praxis · talking deck
Praxis · a beginner's journey, built from Anthropic's own courses

What AI actually is,
and how to start
using it well.

Fourteen ideas, one per screen, for someone starting from zero. First we look at the machine, then at what to trust, then at how working with Claude properly pays off.

01
← → or space
Tutto.Where we're going
The journey

The whole session on one screen

Four moves: see what the machine is, learn what to trust, learn how to work with it, then make it part of your week.

What it is

  1. 1 One word at a time
  2. 2 How it learned to help

What to trust

  1. 3 Where it shines, where to check
  2. 4 A memory that fills up

Working with it

  1. 5 A colleague, not a search box
  2. 6 The brief
  3. 7 The loop
  4. 8 Say the goal
  5. 9 Show it the real material
  6. 10 Stop re-explaining

Making it stick

  1. 11 Decide what stays yours
  2. 12 Before you share it
  3. 13 Where this goes
  4. 14 Your first week
02
Tutto.What it is · 1 of 2
Step 1 · behind the curtain

It writes one word at a time.

Claude is not a search engine looking answers up. It predicts the next word, again and again, from patterns learned across a mountain of text.

The meeting ran long, so let's pick this ? the most likely next words up 62% back 21% again 9%

Your phone keyboard has done a small version of this for years. Claude is the same idea at enormous scale: pick a likely next word, then the next, until an answer exists. That one fact explains most of what follows.

03
Tutto.What it is · 2 of 2
Step 2 · where the manners come from

It read a lot, then it was taught to help.

Two stages. First it learns to predict text from billions of examples. Then people rate its answers until it behaves like an assistant.

A mountain of text books · articles · websites learns to guess the next word A text predictor fluent, but no idea how to help people rate its answers An assistant answers requests, flags limits, declines harmful asks

The politeness and the caution are trained in, not magic. The same training leaves habits worth knowing: it tends to agree with you, and it tends to write long. You can ask it to disagree, and ask it to be brief.

04
Tutto.What to trust · 1 of 2
Step 3 · calibration, not faith

Strong on familiar work. Check the precise claims.

Because it predicts what sounds right, it is excellent at work the world has seen a million times, and it can state a wrong fact with full confidence.

a name a date a statistic a source link The grey lines: usually fine. Summaries, drafts, explanations, rewording. The amber spots: check them. Names, dates, numbers, quotes and links. The more precise the claim, the more it deserves a look before you rely on it.

People call the confident wrong fact a hallucination. You don't need to fear it, you need a habit: verify the specifics, ask for sources, or turn on web search. Be most careful outside your own field, where you can't spot the miss.

05
Tutto.What to trust · 2 of 2
Step 4 · why it "forgets"

It has a working memory, and it fills up.

Everything Claude is paying attention to sits in one container. What's in it, it can use. What falls out, it has quietly lost.

older parts drop out, without warning what Claude is holding right now A new chat starts empty

Two habits follow. In long conversations, restate what matters instead of trusting page one to survive. And don't assume it remembers last week: corrections don't carry across chats unless you save them somewhere it can see. The container is big, roughly 500 pages, but it is not infinite.

06
Tutto.Working with it · 1 of 6
Step 5 · meet Claude properly

Treat it like a colleague, not a search box.

No special syntax, no magic words. Talk to it the way you'd brief a capable coworker, and give it work with substance.

A question box "What does this acronym mean?" "Write a haiku." small answers to small questions A thinking partner "Draft the client email about the delay." "Find the trend in this spreadsheet." "Test my plan for holes." works through real tasks with you

Same Claude on web, desktop and mobile, and it stays signed-in across them. The step up isn't a better tool, it's a better class of task: bring it the work you'd normally do yourself, not just the things you'd look up.

07
Tutto.Working with it · 2 of 6
Step 6 · if you take one thing away

Good results start with a proper brief.

Claude can't read your mind. A good ask does three things: sets the scene, states the task, gives the rules.

1 · Set the scene who you are, what's going on 2 · State the task the thing you want produced 3 · Give the rules tone, length, format I run client services. Our software integration for an enterprise client is delayed two weeks, their second delay. Write an email about the project delay. Professional but apologetic. Under 150 words. End with the new delivery date.

Compare "write an email about the project delay". Same request, no scene, no rules: you get something generic and you blame the tool. Most disappointing answers are under-briefed asks.

08
Tutto.Working with it · 3 of 6
Step 7 · the method

The first answer is a draft, not a verdict.

Working with Claude is a loop: ask, read what comes back, say what to change, repeat. You decide when it's done.

Ask Read it your judgment Say what to change Done "Good, but make the tone warmer" · "Expand point two" · as many rounds as it takes

Specific feedback beats vague feedback: "cut the first two paragraphs" lands better than "make it shorter". And if a conversation has gone off the rails, a fresh chat with a better brief is often faster than rescuing the old one.

09
Tutto.Working with it · 4 of 6
Step 8 · the upgrade most people miss

Say what you're trying to achieve, not just what to change.

An instruction can be followed to the letter and still miss your point. Give the goal next to the instruction and the gap closes.

What you said What you actually meant "Make it shorter." A skimming reader must still catch the ask. "Make it more professional." It's going to the board now, not the team. "Add more detail." Expand only what helps us decide.

The fix in one line: "Make this shorter. My goal is that the key finding survives a twenty-second skim." Instruction plus goal. It works on people too.

10
Tutto.Working with it · 5 of 6
Step 9 · context is the fuel

Show it the real material.

Don't describe your document to Claude. Hand it over. It reads reports, spreadsheets, images and slides, and answers from what's actually there.

annual-report.pdf sales-figures.xlsx whiteboard.jpg meeting-notes.docx Claude What you get back the summary in plain language the trend hiding in the numbers what the diagram actually says the draft, grounded in your notes

One conversation holds about 500 pages, so "read this 60-page contract and flag what's unusual" is a normal ask, not a special one. The right context turns a generic draft into something that sounds like your work, because it is.

11
Tutto.Working with it · 6 of 6
Step 10 · set it up once

Stop re-explaining yourself every time.

A Project is a workspace where your files and standing instructions live. Every chat inside it starts already briefed.

Your project: "Client X account" Files uploaded once: brand guide, contracts, past deliverables Instructions how you like it done: "always plain English, always end with next steps" Every chat starts knowing the files and following the rules, no re-uploading, no repeating

Claude's memory also picks up your role and preferences across conversations, and you can review or edit what it holds. Between the two, the tenth chat should feel nothing like the first: you've stopped introducing yourself.

12
Tutto.Making it stick · 1 of 4
Step 11 · the judgment call

Decide what stays yours.

Using Claude properly starts before the first prompt: for each piece of work, choose what you keep, what you do together, and what you hand over.

Keep the final judgment call anything confidential anything you couldn't check if it were wrong Do together thinking through a problem drafting and revising stress-testing a plan making sense of data Hand over summarising and reformatting first drafts of routine pieces research legwork, with sources to check

The goal is not to automate everything. The middle bucket is where the value concentrates: you bring the expertise and the stakes, Claude brings speed and range. If you're unsure where a task goes, ask Claude to help you split it. That conversation is free.

13
Tutto.Making it stick · 2 of 4
Step 12 · the professional standard

Three checks before it leaves your desk.

AI-assisted work is still your work. Three quick checks keep it something you can stand behind.

Check the specifics names, numbers, claims: verified, not assumed Tell people where your audience would expect to know AI helped Put your name on it you own the result, not the tool

What "telling people" looks like differs by context: a client report, an internal note and a personal email carry different expectations. Know your workplace's line, and when in doubt, say it plainly in a footer line.

14
Tutto.Making it stick · 3 of 4
Step 13 · the horizon

From answers to finished work.

Everything so far happens in a chat window. The same skills carry into tools where Claude works in your actual files and hands back finished documents.

Chat think out loud, draft, decide Cowork point it at a folder and your tools, describe the outcome, get back the finished document Code build working software by describing it the engine behind Cowork, for when you're ready

The step up is delegating, not just chatting: "look across the meeting notes, the email thread and the proposal deck, and write me the one-page summary for the exec team." It plans, works the steps, asks before acting, and saves the result into your folder. That's a later session; today's skills are the foundation it stands on.

15
Tutto.Making it stick · 4 of 4
Step 14 · start now, start small

Pick one task this week.

Not ten. One recurring task you already do: the weekly email, the meeting notes, the spreadsheet check. Run it through the loop.

Pick one task recurring, real, yours Brief it properly scene · task · rules Judge and refine compare to your version Keep the prompt next week: same task, better brief, then a second task

Comparing Claude's output to your own version is the fastest teacher there is: you'll see exactly where it saves you time and where your judgment stays essential. The prompts that work become your library. That's the whole journey, one task at a time.

16
Tutto.Praxis · talking deck
The whole session in one line

The tool predicts words.
The results depend on
the person driving it.

tutto.one/praxis · daniel@tutto.one

17